2017-10-20 42 views
0

試圖弄清楚下面的代碼是如何工作的以及它的功能......有人可以向我解釋它嗎?數組未分配給變量?這是如何工作的,它究竟做了什麼?

從我可以告訴的是,[「的handleEvent」]只是要立即執行並運行一次foreach循環...

我假設它的東西做一個事件偵聽器,然後執行由字符串引用的方法?下面的代碼是constructor方法中,不分配給一個變量或什麼...

class plugin{ 

     constructor(sidebar, options = {}){ 
     this.options = plugin.extend(DEFAULTS, options); 

     // Bind event handlers for referencability. 
     ['handleEvent'].forEach((method) => { 
      this[method] = this[method].bind(this); 
     }); 

     // Initialize sticky sidebar for first time. 
     this.initialize(); 
     } 

回答

2
['handleEvent'].forEach((method) => { 
     this[method] = this[method].bind(this); 
}); 

完全等同於

this['handleEvent'] = this['handleEvent'].bind(this); 

大概是作者寫這種方式來使未來添加新字符串變得更加容易。如果數組是「使用一次和丟棄」對象,則不需要分配該數組。