我正在阅读JavaScript没有事先知识的好零件,这让我感到困惑。我想我需要澄清一下。
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);
});
但是这本书以前注意到所有与Object无关的链接!这是怎么回事?
答案 0 :(得分:3)
不,只有函数有Function.prototype
。 Number
是构造函数函数,因此它与该原型“链接”。
以下是nodejs / V8 shell对Number
所说的内容:
> Number
[Function: Number]
> typeof Number
'function'