簡體   English   中英

范圍內回調的最佳做法

[英]Best practices for callbacks within a scope

通常,在“構造函數”中,您訂閱具有lambda函數的事件:

function Something(){
   this.on('message', function(){ ... });
}
util.inherits(Something, events.EventEmitter);

這效果很好,但擴展性很差。 方法可以更好地繼承:

function Something(){
   this.on('message', this._onMessage);
}
util.inherits(Something, events.EventEmitter);

Something.prototype._onMessage = function(){ ... };

保留這些事件處理程序功能的最佳實踐是什么?

如果我正確理解了這個問題,那么我認為這取決於您願意進行多少更改。

您的第二個示例打開了子類(或實際上是任何類)的選項,以覆蓋處理程序的代碼,這不一定是一件好事。

第一個示例可以防止重寫,但要以在構造函數內部使用匿名函數(有時包含很多代碼)為代價。 但是,可以將此代碼提取到另一個私有函數(不在原型上,而是在模塊文件中的常規函數​​中)。

開閉式負責人處理這類問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM