为什么不是从内置对象(Javascript)继承/访问所有属性?

时间:2012-05-28 21:30:17

标签: javascript

在我读过的所有书籍/材料中,他们以通用的绝对术语谈论对象的所有实例都继承并可以访问创建对象的原型方法。在大多数情况下,这似乎是正确的。但这似乎并不像我读过的那样普遍。一个简单的例子:

对于typeof number的对象,未定义length属性。

例如:

x = 5;
typeof x;
=> returns number
number.length
=> returns undefined

我理解一个数字长度没有多大意义(虽然我认为它可以反映数字中的数字位数),困扰我的部分是我准备谈论的所有内容这种绝对的继承原则。并且由于所有内容都是从内置的Object派生的,甚至内置的Number对象都有length属性,为什么在上面的x示例中无法访问该属性?

1 个答案:

答案 0 :(得分:0)

符号Number指的是数字构造函数,而不是原型对象。所有函数都有一个“。length”属性,给出函数声明中形式参数的数量。正如你所说,Number内置确实是一个对象,但特别是它是一个函数(Function的一个实例)。

Number.prototype没有“长度”属性,这就是为什么实例没有这样的属性。 (当然,您可以在任何实例中添加一个,或者在原型中添加一个。)