2012-04-18 72 views
0

我想存儲一個指向函數的指針,然後用一些參數調用它,但是我在如何將參數傳遞給函數時遇到了問題。調用一個JavaScript函數和後來決定的參數

例如:

var MyObject = (function() { 
    return { 
     myMethod: function (a, b) { 
      return a + b; 
     } 
    }; 
}()); 

var method = MyObject.myMethod; 
var args = [2, 5]; 

method(args); 

因此,在最後一行,我知道不會做我想做method(args),我想基本上是叫MyObject.myMethod(2, 5),所以我的陣列嘗試失敗,創建一個對象也將失敗。我如何將存儲的參數傳遞給存儲的方法?

回答

8

可以使用apply它接受的參數數組作爲參數

var myarray = [2,5,...] //your array of arguments 

method.apply(this,myarray); //execute your method 

和在你有方法,可以通過「隱藏」「僞陣列」 arguments參數接收的參數。

function method(){ 
    var args = arguments; //is [2,5,...] 
} 

這個具有優勢call因爲你可以預先建立的參數數組,並沒有列舉的參數在調用的()

+0

輝煌。非常感謝你。 – Fenton 2012-04-18 22:47:48

+0

所以downvoter,你能說什麼? – Joseph 2012-04-21 10:11:02