我在JavaScript中遇到了一些麻烦,并且传递了一个函数作为另一个函数的参数。如何更新对象内部的JavaScript指针以指向另一个对象?
让我们说我们是一类内,做这样的事情:
this.get('target').update(this.onSuccess, this.onFail);
- “目标”是一个JavaScript对象,有一个方法叫做更新()
- 我打电话这沿着作为参数
该更新方法的一些东西发生内,当它完成该方法应该调用的onSuccess法或onFail主叫类的方法,并通过拖方法-方法。这看起来像这样:
update: function(onSuccess, onFail) {
if(true) {
onSuccess();
} else {
onFail();
}
}
到现在为止,一切工作都很好!但那些成功/失败的方法,在呼叫者类(上述更新方法调用之一)中定义的内部,我使用的一个这种指针:
onFail: function() {
alert('Error: ' + this.get('target').error);
}
,该指针会导致一些的问题。它并不指向最初定义方法的类,而是指向“目标”对象。
我现在需要做的是在onSuccess/onFail在'target'类内部调用之前更新this-pointer以使这些方法再次工作。但由于'无效的左侧'错误,这不起作用。
这样的场景的最佳做法是什么?有任何想法吗? thx提前!
欢呼
THX,这解决了我的问题!我忘了提及,我不能在调用者类中做出任何更大的更改!所以我只传递'this-pointer'和目标类中的绑定内容。这工作得很好! – NATOR 2010-10-06 14:23:59