在Javascript数组上生成事件
Generating event on Javascript array
当Javascript数组的内容被修改时,如何生成一个事件,即当push或pop操作在特定Javascript数组上执行时,应该生成一个事件。基本上,我想跟踪在特定Javascript数组上执行的push、pop操作。
编辑:-在注释中说明的解决方案需要重写push或pop方法。我想在不重写的情况下执行它。
这个想法是数组是对象,所以你可以定义属性。
var someArray = []; // a normal array
someArray.push = function() { // this will override the original push method
// custom code here
console.log('pushing something..');
return Array.prototype.push.apply(this, arguments); // original push
};
// now everytime you push something a message will be logged. Change this functionality as you like.
注意: someArray.push()现在将是可枚举的。如果你想防止这种情况发生,你可以使用Object定义一个push属性。房地产法。
Object.defineProperty(someArray, 'push', {
enumerable: false, // it's false by default anyway
value: function() {
console.log('pushing something..');
return Array.prototype.push.apply(this, arguments);
}
});
我认为没有原生的方法可以做到这一点。这里也讨论了这个主题,建议的解决方案是为数组实现一个包装器类。
另一种方法是只实现包装器push
函数,并在函数调用时触发事件。
相关文章:
- 召回窗口加载事件 - javascript
- 动态创建OnClick事件Javascript
- 全局屏幕span onclick触发一个事件javascript
- 使用react js在跨域上执行事件javascript
- 在change事件javascript上动态添加行
- 在粘贴事件Javascript的输入字段中删除所有非数字字符
- 如何在多表单的输入框中使用输入事件javascript
- 无法查看特定信息.单击事件.Javascript
- 两个文本框事件Javascript
- 阻止鼠标滚轮滚动,但不阻止滚动条事件.JavaScript
- 从 onkeydown 事件 (Javascript) 获取当前用户输入
- “稍后提醒我”/“快速事件”JavaScript解决方案
- 更改我正在侦听的事件Javascript的对象的CSS
- setInterval 不允许同时单击事件 - javascript
- 对每种情况使用一个事件(JavaScript 开关)
- 仅创建第二次点击事件 Javascript
- 每 60 秒仅启动一次事件 (JavaScript)
- 如何连接来自不同文件的事件?Javascript/Backbone
- URL 更改事件 - JavaScript
- 无法在无头模式下使用 watir Webdriver 执行按钮元素的 onclick 事件 javascript