所以今天我编码了,我觉得很奇怪
arguments.concat(someNumber);
给了我一个未定义函数的错误。起初我认为arguments
出于性能原因可能是某种本机对象,但最后我发现它实际上是一个普通的javascript对象而不是数组或内部本机对象。我不知道是否有任何特殊原因。
答案 0 :(得分:1)
arguments
对象是特殊的("异国情调"在Harmony用语中),因为它维护了自己的数字属性和范围变量之间的实时连接:
function x(a) {
arguments[0] = 42;
document.write(a);
}
x(10)

要支持此功能,arguments
需要从默认对象覆盖a lot of stuff。这就是为什么它是一个单独的类型。