2014-03-28 87 views
0

當我使用JS在網站上,我經常喜歡使用的功能(代碼分成邏輯,完整的模塊),通常像這樣的時候:範圍調用嵌套的Javascript功能

function BigClass() { 
    this.doOneThing = function() { 
    } 
    this.doAnother = function() { 
    } 
} 

後來我使用jQuery的.ready()創建我正在使用的類的實例並將它們掛到各種事件上。

var bigClassInstance = new BigClass(); 
$('a.something').click(bigClassInstance.doOneThing); 

我的問題是...什麼是做從我的調用doOneThing()執行doAnotherThing()函數最好的方式?在較小的項目上工作,我只會使用bigClassInstance.doAnotherThing();,但這不是便攜式。

什麼是正確的方法去做到這一點?

回答

1

不知道我理解的問題,但通過使用proxy功能,您可以更改通過單擊處理調用該函數的情況下即作出this請參閱您的bigClassInstance,而不是jQuery的點擊背景:

function BigClass() { 
    this.doOneThing = function() { 
     this.doAnother(); 
    } 
    this.doAnother = function() { 
    } 
} 

$('a.something').on("click", $.proxy(bigClassInstance.doOneThing, bigClassInstance));