Adr*_*mew 9 javascript arrays listener extending
如何通知(运行预定义的函数)对已注册数组的任何更改(或至少添加或删除元素)?我尝试过使用原型.我不想因为没有提供我自己的一些代码示例而被责骂.因此,这里是我怎么会喜欢使用它.
var myArray = [];
myArray.bind(function() {
console.log('wtf'); // Wed Thu Fri and what were you thinking?
});
Run Code Online (Sandbox Code Playgroud)
我不需要矫枉过正.我基本上知道我将使用的Array函数范围(push,pop,splice以及其他几个).这是使用骨干MVC的一种方式.我想在数组上运行逻辑,然后相应地突出显示视图.但该视图已附加到集合中.对该集合的任何更改都会在视图中重新呈现实际的DOM.我不希望这样.我想简单地想要在视图中为CSS添加或删除类到相应的DOM.
Nea*_*eal 13
我做的是我创建了自己的"数组"类型,只是扩展了原型数组,然后我添加了自己的处理程序.
例如:
var MyArray = function() {
var arr = [];
arr.push = function() {
console.log("PUSHING", arguments);
return Array.prototype.push.apply(this, arguments);
}
return arr;
};
Run Code Online (Sandbox Code Playgroud)
用法:
var arr = new MyArray;
arr.push(12, 3, 45);
...
Run Code Online (Sandbox Code Playgroud)
小提琴:http://jsfiddle.net/maniator/vF659/