Apply方法接受两个参数,第一个是上下文,第二个参数是一个参数数组。但是,在JavaScript中,args不是一个真正的数组,而是“类似数组的对象”。因此,考虑到它不是一个真正的数组,下面的代码是否有效:
function firstFunc(){
secondFunc.apply(someContext,arguments);
}
或者我需要进行这个仪式吗:
function firstFunc(){
var realArray=array.prototype.slice(arguments);
secondFunc.apply(someContext,realArray);
}
arguments
有一些特殊之处。它不是一个真正的数组。但是没错,你可以很好地使用apply
。 - Bradarguments
不是真正的数组。这在问题本身中就有提到。我指出args
并不特殊。 - Dan Tao