我在使用 JavaScript 和将函数作为另一个函数的参数传递时遇到了一些问题。
假设我们在一个班级里做这样的事情:
this.get('target').update(this.onSuccess, this.onFail);
- 'target' 是一个 JavaScript 对象,它有一个名为 update() 的方法
- 我正在调用此方法并将调用者类的两个方法作为参数传递
在该更新方法中发生了一些事情,当它完成时,该方法应该调用 onSuccess 方法或 onFail 方法。这看起来像:
update: function(onSuccess, onFail) {
if(true) {
onSuccess();
} else {
onFail();
}
}
到目前为止,一切正常!但是在调用者类(调用更新方法的那个)中定义的那些成功/失败方法中,我使用了一个this指针:
onFail: function() {
alert('Error: ' + this.get('target').error);
}
这个指针会导致一些问题。它不指向最初定义该方法的类,而是指向“目标”对象。
我现在需要做的是在“目标”类中的 onSuccess / onFail 调用之前更新 this 指针,以使方法再次工作。但这由于“左侧分配无效”错误而不起作用。
这种情况的最佳做法是什么?有任何想法吗?提前谢谢!!!
干杯