【问题标题】:What is the significance of the `Object.length` property on JavaScript's `Object` constructor? [duplicate]JavaScript 的 `Object` 构造函数中的 `Object.length` 属性有什么意义? [复制]
【发布时间】:2016-12-31 02:09:49
【问题描述】:

JavaScript 语言的内置全局 Object 对象的 documentation 声明

对象.长度

值为 1。

这个属性有什么意义,另外,为什么object.length 不能像array.length 一样提供给我们?

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

【问题讨论】:

标签: javascript oop object


【解决方案1】:

length 属性指定function 预期的参数数量。

因为Object属于类型functionlength函数的属性 确定参数的数量,Object.length 返回预期参数的长度。


考虑以下示例:

function test(a, b, c) {}
console.log(test.length);

还有Object:

console.log(typeof Object);
console.log(Object.length); //returns 1

“为什么我们无法使用与 array.length 相同的方式使用 object.length?”

请注意,array 也是 object(试试typeof [])类型,因此 “为什么我们不能使用 object.length” 并不完全正确。如果你指的是object-without-indices,我们使用objectkey读取对象属性,如果没有键为lengthobj.length返回undefined

【讨论】:

  • 如果我创建一个随机函数 f1(){},f1.length 给我 0,但是为什么 Object.length 给我一个
  • @ajaykumar – 你的f1,期望0 参数因此f1.length0,但function Object 确实期望1 参数因此长度为1
  • 你指的是隐含的 'this' 参数 incase 的 Object Fn
  • 我仍然对 Object.length 如何期望 1 感到困惑。如果能提供更多信息,我将不胜感激。
  • @ajaykumar – 你读错了,它是Function.lengthObject 的类型是Function。考虑这个例子,parseInt.length,它返回2,原因是parseInt()期望2parameters/arguments
猜你喜欢
  • 2011-04-30
  • 2016-01-12
  • 2014-04-12
  • 1970-01-01
  • 2014-07-28
  • 2012-12-12
相关资源
最近更新 更多