2014-03-28 88 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));