0

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

对于数字类型的对象,长度属性未定义。

例如:

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

我知道一个数字有一个长度没有多大意义(尽管我想它可以反映数字中的位数),困扰我的部分是我准备好的一切都在谈论这个绝对原则的继承。既然一切都是从内置的 Object 派生的,甚至内置的 Number 对象也有 length 属性,为什么在上面的例子中不能访问 x 的这个属性呢?

4

1 回答 1

0

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

没有“长度”属性Number.prototype,这就是实例没有这种属性的原因。(如果您愿意,当然可以将一个添加到任何实例或原型中。)

于 2012-05-28T21:40:05.100 回答