当我开始使用 Javascript 时,我学到了当你传递一个外部事件处理程序(如计时器)对对象中函数的引用时的艰难方法,你不能依赖this.
引用你的对象 - 它会而是指任何触发事件的范围(在计时器的情况下,我认为它是window
?)。
我看到正在使用的解决方法是为自己创建一个私有/本地引用并在回调逻辑中使用它。例如:
function MyObject() {
var myThis = this;
this.foo = true;
this.callback = function() { return myThis.foo; }
this.interval = 30;
setInterval(function () { myThis.callback(); }, myThis.interval);
}
对于这种情况,这是标准的编码实践吗?如果不是,首选的替代方案是什么以及为什么(例如,上述示例的风险是什么)?