【发布时间】:2010-11-22 00:30:20
【问题描述】:
在 Javascript 中很常见的 Array-Like 对象与 Array 类型的构建有一些相似之处,但没有它的所有方法或特性。如此之多,以至于有一些技巧可以将类数组对象转换为“真实”数组以进行进一步操作。
Javascript: The Definitive Guide 中甚至提到了这一点。
问题是为什么这种模式如此普遍?为什么不在所有这些情况下都选择内置的 Array 类型呢?
【问题讨论】:
-
例如:
arguments被设计为不可变的。如果它是一个数组,情况就不是这样了。 -
@elusive,
arguments对象是可变的,你可以改变它的属性值。以索引命名的属性链接到函数的FormalParameters,如果您更改arguments[0]的值,更改将反映在函数的第一个命名参数上。 ECMAScript 5 上的严格模式,引入了一些限制,但对象仍然是可变的。 -
@CMS:你是对的。这里弄错了。早上非常。顺便说一句,很好的答案。 +1!
标签: javascript arrays