我在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