4

我在没有 js 知识的情况下阅读 JavaScript The Good Parts,这让我感到困惑。我想我需要澄清一下。

JavaScript 允许扩充语言的基本类型。在第 3 章中,我们看到将方法添加到 Object.prototype 使该方法可用于所有对象。这也适用于函数、数组、字符串、数字、正则表达式和布尔值。例如,通过扩充 Function.prototype,我们可以使一个方法可用于所有函数:

然后继续这个例子:

Function.prototype.method = function (name, func) {
     this.prototype[name] = func;
     return this;
};

现在每个基本类型都有一个“方法”方法,因此可以为它们定义新函数,例如:

Number.method('integer', function () {
    return Math[this < 0 ? 'ceiling' : 'floor'](this);
});

但是这本书之前指出所有链接都指向对象而不是函数!这是怎么回事?

4

1 回答 1

3

不,只有函数有Function.prototype. Number是一个构造函数,因此它“链接”到该原型。

这是 nodejs/V8 shell 所说的Number

> Number
[Function: Number]
> typeof Number
'function'
于 2012-05-05T12:13:32.483 回答