Apply接受两个参数,一个上下文,第二个参数是一个参数数组。然而,在JavaScript中,args不是数组,而是"类似数组的对象"。因此,考虑到它不是一个真正的数组,以下代码是否有效:
function firstFunc(){
secondFunc.apply(someContext,arguments);
}
或者我需要通过这个仪式:
function firstFunc(){
var realArray=array.prototype.slice(arguments);
secondFunc.apply(someContext,realArray);
}
我假设你指的是arguments
而不是args
。第一个版本很好。MDN在这里和这里非常清楚地表明了这一点:
您也可以使用argsArray参数的参数。
CCD_ 3可以是类似数组的对象。
请注意,在ES5之前,参数是规则的例外,不能与其他类似Array的对象一起使用apply。在现代Javascript引擎中,您可以将application与任何类似数组的对象一起使用。
您可以将apply
与arguments
一起使用,而无需调用slice
。我一直都这么做。
据我所知,JavaScript中的单词args
并没有什么特别之处。