JAVASCRIPT:Arrays构造函数自动有一个名为arguments的变量吗?

时间:2014-10-09 02:33:35

标签: javascript arrays constructor

所以,在下面的代码中,我想知道为什么"参数"在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"

2 个答案:

答案 0 :(得分:3)

这对构造函数或数组来说并不特殊。

在每个功能的内部,您都可以通过这种方式访问​​arguments

答案 1 :(得分:0)

我认为答案是"论证"特殊对象属于SpecialArray函数的上下文。如果在toPipedString()函数表达式的push()中调用了参数,那么它将引用该函数的本地上下文。