2013-08-27 38 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引擎中,您可以使用任何类似数组的对象。

相关问题