2013-08-27 78 views
3

Apply需要兩個參數,一個上下文,第二個參數是一個參數數組。但是,在JavaScript中,args不是一個數組,而是「一個類似數組的對象」。因此,考慮到它是不是一個真正的數組在下面的代碼有效:在JavaScript中,你可以使用適用於Args嗎?

function firstFunc(){ 
    secondFunc.apply(someContext,arguments); 
} 

或者我需要通過這個儀式:

function firstFunc(){ 
    var realArray=array.prototype.slice(arguments); 
    secondFunc.apply(someContext,realArray); 
} 

回答

2

您可以使用applyarguments,而不調用slice。我一直這樣做。

據我所知,在JavaScript中沒有什麼特別的字args

+1

啊,但是'arguments'有一些特別的地方。這不是一個真正的數組。但是,是的,你可以使用'apply'就好了。 – Brad

+0

@Brad:你的意思是'參數'? 'args'不是什麼。 –

+0

是的,謝謝。編輯。 – Brad

5

我假設你的意思是arguments不是args。第一個版本沒問題。 MDN很清楚herehere

您也可以使用argsArray參數的參數。

argsArray可以是一個像對象一樣的數組。

請注意,在ES5之前,參數是規則的一個例外,您不能將其應用於其他類似數組的對象。在現代的Javascript引擎中,您可以使用任何類似數組的對象。

相關問題