簡體   English   中英

使用稍后確定的參數調用JavaScript函數

[英]Calling a JavaScript Function With Arguments That Are Decided Later

我想存儲一個指向函數的指針,然后稍后使用一些參數調用它,但是我在如何將參數傳遞給函數時遇到了麻煩。

例如:

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) ,所以我的數組嘗試失敗了,創建對象也失敗了。 如何將存儲的參數傳遞給存儲的方法?

您可以使用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具有優勢,因為您可以預先構建參數數組,而不必枚舉調用()的參數

斯科特·艾倫(K. Scott Allen)在這類事情上有一篇很不錯的老文章。 使用callapply作為影響被調用函數中this值的一種方式。

http://odetocode.com/blogs/scott/archive/2007/07/05/function-apply-and-function-call-in-javascript.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM