所以,在下面的代码中,我想知道为什么"参数"在apply方法中自动填充数组构造函数中的参数。
function SpecialArray(){
var values = new Array();
values.push.apply(values, arguments); // does arguments descend automatically from the constructor?
values.toPipedString = function() {
return this.join("|");
};
return values;
}
var colors = new SpecialArray("red","blue","green");
console.log(colors.toPipedString()); // prints: "red|blue|green"
答案 0 :(得分:3)
这对构造函数或数组来说并不特殊。
在每个功能的内部,您都可以通过这种方式访问arguments。
答案 1 :(得分:0)
我认为答案是"论证"特殊对象属于SpecialArray函数的上下文。如果在toPipedString()函数表达式的push()中调用了参数,那么它将引用该函数的本地上下文。