给定一个任意对象,我想让它成为一个 EventEmitter:

var obj = {}
// mixin eventemitter
obj.on('event', ...)
obj.emit('event')

此外,当我输入 obj 时,我不希望它显示 EventEmitter 方法作为方法。例如通过 CLI:
> obj
{}

因此,现在我正在做:
function mixinEventEmitter(obj) {
  obj.__proto__ = EventEmitter.prototype
  return obj
}

但是人们说使用 __proto__ 是一种反模式:Node.js - inheriting from EventEmitter

我做得对吗?你有更好的方法吗?谢谢。

最佳答案

执行此操作的常用方法是使用 util.inherits (链接文档包含一个几乎正是您想要的示例)。

关于node.js - 使用 __proto__ 混合 EventEmitter 方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12597699/

10-13 09:19