javascript - 为什么 length 是 `Array` 的属性而不是 `Array.prototype` 链

标签 javascript arrays

所以我在 V8 控制台上玩了很多,而且我做到了

Object.getOwnPropertyNames([])

我希望得到 [] 结果,但是 ["length"]

这意味着 length 不是原型(prototype)链的一部分,而是所有 Array 对象的成员属性。

这是一个错误,还是有任何设计或特定原因 length 不是原型(prototype)链的一部分?

最佳答案

原型(prototype)属性在对象之间共享。因此,如果将 length 放在原型(prototype)上,则所有数组对象将具有相同的长度,这是错误的。长度表示当前数组中元素的数量,并且应该保留为 self 的属性。

关于javascript - 为什么 length 是 `Array` 的属性而不是 `Array.prototype` 链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48020958/

相关文章:

javascript - 尝试用 HTML 设计台球游戏来制作 jQuery 游戏——我的第一个元素

javascript - Angularjs-UI Bootstrap : Accordion Open and close all

c++ - 为什么这行得通?不合逻辑的数组访问

c - 相对于由前两个数组组成的已排序的第三个数组重新排列一对数组

如果数组 2 中存在值,Javascript 从数组 1 中删除项目

c - c语言中如何初始化数组?

javascript - 如何使用nodejs加载2个json

javascript - 如何跟踪 JavaScript 方法中的先前值?

arrays - C如何将.txt文件的内容放入二维数组

javascript - 我可以让隐藏的内容在移动到 div 时出现吗?