从Node.js中的EventEmitter继承的原型数组
Prototyping Array to inherit from EventEmitter in Node.js
我目前在一个项目中工作,我需要从EventEmitter继承。我需要一个数组在某些情况下发出事件,例如,当超过某个长度时。
我使用了这个代码片段:
var events = require('events');
Array.prototype.__proto__ = events.EventEmitter.prototype;
工作正常,但是据说它是反模式。
在另一个问题中,建议使用:
util.inherits(Array, events.EventEmitter.prototype);
但是NOT工作。那么正确的方法是什么呢?
这里的问题是,这将改变应用程序中的所有数组,而不仅仅是一个。在这种情况下,最好使用从EventEmitter扩展并委托给Array的新Type。
。
// Create a new object that ...
function MyEventArray() {
// ...owns an Array as property...
this.array = new Array();
}
// ... and extends from EventEmitter...
MyEventArray.prototype = Object.create(EventEmitter.prototype);
MyEventArray.prototype.constructor = MyEventArray;
// ... and has functions that delegate to the array.
MyEventArray.prototype.push(obj) {
this.array.push(obj);
}
...
// This object is an EventEmitter and can be used like an Array:
var myArray = new MyEventArray();
myArray.push(someStuff);
相关文章:
- 对象/数组和循环上的原型
- 为什么不't loadash/aunderline将util方法放在数组原型上
- 动态创建原型并推送到数组
- 用于数组原型的JavaScript独特方法
- 发送数组 ajax.request 原型
- Javascript原型通用Enquries和通过数组索引分配Id
- 在JavaScript中更改数组原型
- Javascript - 使用数组作为函数的参数,并在创建新的原型对象时更改值
- 在for循环中设置断点会导致在数组上使用原型时出错
- 如何为特定的javascript对象扩展数组或对象原型
- 如何在数组原型图中获取当前索引
- 将数组原型函数与非数组一起使用
- JavaScript 将数组推送到类原型问题
- Javascript:分配给对象或数组原型会导致括号不起作用
- Javascript 自定义数组原型
- 在 JavaScript 对象原型中找不到数组长度属性
- 我怎样才能在这个共享原型中拥有单独的数组
- 从Node.js中的EventEmitter继承的原型数组
- Javascript二进制搜索原型数组
- 不能修改原型数组内部