0
這裏是一個數組var arr = [1, 2, 3]
,我想實現一個方法來觀察數組的變化。 它喜歡如何在javascript中添加自定義事件陣列
arr.on('change', function() {
// to do something
});
它將自動觸發的「變化」事件時,我推或從陣列刪除數據。
可能嗎?我該怎麼做?
謝謝
這裏是一個數組var arr = [1, 2, 3]
,我想實現一個方法來觀察數組的變化。 它喜歡如何在javascript中添加自定義事件陣列
arr.on('change', function() {
// to do something
});
它將自動觸發的「變化」事件時,我推或從陣列刪除數據。
可能嗎?我該怎麼做?
謝謝
就是這樣來到我腦海中的第一個想法:
var arr = [1, 2, 3],
tmp = [].slice.apply(arr);
setInterval(function() {
if (arr.join() !== tmp.join()) {
console.log("Changed");
tmp = [].slice.apply(arr);
}
}, 10);
還是原型版本:
Array.prototype.change = function(callback) {
var _this = this,
tmp = [].slice.apply(_this);
setInterval(function() {
if (_this.join() !== tmp.join()) {
callback();
tmp = [].slice.apply(_this);
}
}, 10);
};
var arr = [1, 2, 3];
arr.change(function() {
console.log("Changed!");
});
arr.push(4); // Changed!
不,這是不可能的。事件只發生在DOM元素上。 – Barmar
在這裏看到http://stackoverflow.com/questions/5306843/javascript-attach-event-listener-to-array-for-push-event.It可能對你有用 – PSR
我現在很困惑。 ** ** ** ** DOM ELement **? –