JavaScript的`Object`构造函数的`Object.length`属性有什么意义?

Ise*_*chO 4 javascript oop object

JavaScript语言的内置全局对象的文档Object说明了这一点

Object.length

值为1.

这个属性有什么意义,另外,为什么object.length我们不能以同样的方式获得这个属性array.length

乍一看,在我看来,后一个问题的原因与length对象属性的解释器中的可能混淆有关属性访问/初始化的点符号方法.

Ray*_*yon 6

length属性指定了期望的参数数量function.

由于Object属于函数的类型functionlength属性决定了参数的数量,Object.length返回预期的参数长度.


考虑以下示例:

function test(a, b, c) {}
console.log(test.length);
Run Code Online (Sandbox Code Playgroud)

并与Object:

console.log(typeof Object);
console.log(Object.length); //returns 1
Run Code Online (Sandbox Code Playgroud)


"为什么object.length不能以与array.length相同的方式提供给我们?"

请注意,array它也是类型object(尝试typeof [])因此"为什么不是object.length对我们可用"并不是字面上正确的.如果你指的是object-without-indices,我们使用的key方法读取对象属性object,如果没有键length,则obj.length返回undefined.