node.js - Node : extend EventEmitter to non-prototype object

标签 node.js eventemitter

我一直看到这个:

Parrot.prototype.__proto__ = EventEmitter.prototype;

有了这个,每次你 build 一只新鹦鹉时,它都会发出叫声。

但是,假设我构造一个具有函数的对象并且不打算创建多个实例:

var parrot = {
  squawk: function(whatYouSaid){
    this.emit("SQUAWK!!!!", whatYouSaid);
  }
}

我如何扩展EventEmitter?我尝试了这个,但没有成功:

_.extend(parrot, (new EventEmitter()));

最佳答案

您应该将 EventEmitter.prototype 扩展/分配给您的对象:

_.assign(parrot, EventEmitter.prototype);

关于node.js - Node : extend EventEmitter to non-prototype object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31252690/

相关文章:

node.js - Express 服务器上的 RSS 订阅实现

javascript - Node.js 事件发射器 : How to bind a class context to the event listener and then remove this listener

javascript - Promise 流

mysql - Angular 7 : Update and Delete functions don't work

node.js - 如何在 Ubuntu 中将可执行文件作为命令或服务运行(使用 Node.js child_process.spawn())?

node.js - 等待关键部分在 Node.js 正常关闭中完成

javascript - Node.js 服务器/客户端模块困惑,EventEmitter 问题

javascript - 如何从代码文本加载模块?

javascript - 将 POST 请求数据 JSON 路由到 View / Controller (node.js)

javascript - VueJS $emit 和 $on 不在一个组件中工作到另一个组件页面