范围内callback的最佳实践
通常,在“构造函数”中,您使用lambda函数来订阅事件:
function Something(){ this.on('message', function(){ ... }); } util.inherits(Something, events.EventEmitter);
这工作得很好,但延伸不好。 方法更好地inheritance:
function Something(){ this.on('message', this._onMessage); } util.inherits(Something, events.EventEmitter); Something.prototype._onMessage = function(){ ... };
保留这些事件处理函数的最佳实践是什么?
如果我正确地理解了这个问题,那么我认为这取决于你愿意做多less改变。
你的第二个例子打开子类(或,实际上,任何类)的选项来覆盖处理程序的代码,这不一定是件好事。
第一个例子可以防止重写,但代价是在构造函数中有匿名函数(有时包含大量的代码)。 然而,这个代码可以被提取到另一个私有函数(不在原型上,只是模块文件中的常规函数)。
开闭校长处理这类问题。
- 如何发布mongoose中间件事件?
- 创build自定义EventEmitter时是否需要events.EventEmitter.call(this)?
- 在帆js的事件工作
- 如何在node.js(express.js)中创build自定义事件侦听器?
- 在事件处理程序中读取和写入全局variables:什么时候是并发性问题?
- 节点stream:如果一个可读的stream如果已经被排空(如果已经被排出),怎么会发出另一个可读的事件?
- 在node.js中,何时使用事件,何时使用直线callback函数?
- 当我的函数完成时用javascript(或jquery)触发一个自定义事件
- Javascript错误事件使用meteor初学者文件