与Python之类的语言不同,Javascript方法忘记了将其提取并传递到其他地方后才使用的方法。你可以
将方法调用包装在匿名函数中
这样,访问
baz属性并调用它是同时发生的,这是
this在方法调用中正确设置的必要条件。
您将需要
this将外部函数中的from 保存到一个辅助变量中,因为内部函数将引用另一个
this对象。
var that = this;setInterval(function(){ return that.baz();}, 1000);将方法调用包装在粗箭头功能内
在实现箭头功能功能的Javascript实现中,可以通过使用fatarrow语法以更简洁的方式编写上述解决方案:
setInterval( () => this.baz(), 1000 );
粗箭头匿名函数保留了
this周围函数的,因此无需使用该
varthat=this技巧。要看到,如果你可以使用此功能,请咨询兼容性表像这一个。
使用绑定功能
最后一种选择是使用诸如Function.prototype.bind之类的函数或您喜欢的Javascript库中的等效函数。
setInterval( this.baz.bind(this), 1000 );//dojo toolkit example:setInterval( dojo.hitch(this, 'baz'), 100);



