2009-01-30 197 views
17

Javascript代碼:如何將多個參數傳遞給JavaScript回調函數?

function doSomething(v1,v2){ //blah; } 

function SomeClass(callbackFunction,callbackFuncParameters(*Array*))={ 
    this.callback = callbackFunction; 
    this.method = function(){ 
     this.callback(parameters[0],parameters[1]) // *.* 
    } 
} 

var obj = new SomeClass(doSomething, Array('v1text','v2text')); 

的問題是如果我改變功能的doSomething到

function doSomething(v1,v2,v3){ //blah; } 

我不得不在SomeClass相應的行(標記爲//*.*)更改爲

this.callback(parameters[0],parameters[1],parameters[2]); 

無論「doSo」的數量如何變化,可以做些什麼來避免(*.*)行被改變mething'函數的參數已更改?

非常感謝!

回答

22

你可能想使用apply method

this.callback.apply(this, parameters); 

的第一個參數應用表示「這個」內回調的值,並且可以設置爲任意值。

+0

作品!謝謝。 – Shawn 2009-01-30 07:31:57

相關問題