2016-05-11 46 views
0

我正在做一些助手庫,我發現了一個有趣的問題。也就是說,我怎麼能從一個函數中引用一個運行了上述函數的對象呢?JavaScript - 引用自己的對象

也許我的解釋是不明確的,所以這裏的代碼:

HTML

<div class=".ful">...</div> 

JS

class Moon { 
    onEvents(what, events, callback) { 
     const ev = events.split(' '); 

     for (let t of Array.from(what)) { 
      for (let e of ev) { 
       t.addEventListener(e,() => { 
        callback(); 
       }); 
      } 
     } 
    } 
} 

const moon = new Moon(); 

moon.onEvents(document.querySelectorAll('.ful'), 'click mouseover',() => { console.log('identikit'); }); 

這個偉大的工程,但是當我想是這樣

moon.onEvents(document.querySelectorAll('.ful'), 'click mouseover',() => { console.log(this); }); 

我得到undefined。我能做什麼?

回答

2

箭頭函數的要點是要綁定當前的的值this。如果您不想這樣做,請不要使用箭頭功能。

moon.onEvents(document.querySelectorAll('.ful'), 'click mouseover', function() { console.log(this); }); 

t.addEventListener(e, callback); 
+0

偉大的作品,感謝了一堆昆汀! –