gpt4 book ai didi

javascript - Array.prototype 对象的长度属性 - ES 5

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:43:42 24 4
gpt4 key购买 nike

function 类型对象中,length 属性表示function 类型对象期望的参数数量。例如,Function 对象中的 length 字段,Array 对象,在下面的可视化中,具有值 1 .

enter image description here

在上面的可视化中,length字段也是object类型对象Array.prototype的成员,其值为0

MDN说:

Array.prototype.length reflects the number of elements in an array.

在下面的 carsbikes 数组中遵循这个定义,

var cars = new Array("Saab", "Volvo", "BMW");
var bikes = ["Honda", "Yamaha"];

cars.__proto__.length & bikes.__proto__.length 仍然是 0

多个数组对象(carsbikes)不能共享相同的 length 属性值,因为 length 属性是坐在 Array.prototype 中。

1)

根据 MDN , 这是一个正确的定义吗?

2)

如果不是,Array.prototype 中的length 字段是什么意思?

最佳答案

var cars = new Array("Saab", "Volvo", "BMW"); 
var bikes = ["Honda", "Yamaha"];

cars.__proto__.length & bikes.__proto__.length is still 0.

是的,但是 cars.length === 3bikes.length === 2

cars.__proto__.lengthArray 构造函数的 prototype 属性的长度。默认情况下这是一个空数组实例。

详情

Array.prototype 是一个空数组实例。var cars = new Array() 生成一个对象,其中 __proto__ 指向 Array.prototype。所以 cars.__proto__ === Array.prototype

在数组实例上,length 是 Array 对象的最大整数属性值加一。如果为空,则为零。

var a = [];
a[10] = 'foo';
a.length; // 11

Array.prototype 为空。

因此

cars.__proto__.length === 0

关于javascript - Array.prototype 对象的长度属性 - ES 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34104655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com