与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);