Number和Function之间的关系是什么?javascript中的原型
What's the relationship between Number and Function.prototype in javascript?
我在读Javascript: the Good Parts这本书。当我阅读下面的代码时,我有点困惑:
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
return this;
};
Number.method('integer',function(){
return Math[this < 0 ? 'ceil' : 'floor'](this);
});
我认为上面代码的第一部分意味着JavaScript中的任何函数现在都有一个名为方法的方法。但是"Number"也是一个函数吗?为什么Number.method
是有意义的?
我猜想Number继承了Number。prototype继承了Object.prototype(Number->Number.prototype->Object.prototype),由于Number在开始时没有"method"方法,它将沿着原型链寻找它。但功能。原型不在链上,对吧?
Number和Number之间的关系是什么?prototype和Function.prototype?
UPDATE I:
我搜索了一些额外的信息,现在更困惑了。有人说Number实际上是一个函数,这似乎是有道理的,因为Number instanceof Function
的值是true
,但(-10 / 3) instanceof Number
的值是false
。这不是很令人困惑吗?如果数学中的数字(如3,2.5,(-10/3))甚至不是JavaScript中的Number
, (-10 / 3)
如何调用integer()
,这是Number
的方法?(下面这一行出自同一本书)
document.writeln((-10 / 3).integer());
UPDATE II:
问题基本上解决了。
感谢@Xophmeister的帮助,现在我的结论是Number
可以调用method
,因为Number
是一个构造函数,所以它链接到Function.prototype
。至于为什么在JavaScript中一个类型为原始类型的数字(3,2.5,(-10/3))可以调用对象Number
所具有的方法,请参考该页。
我得到这个结论基本上从@Xophmeister的帮助和一点搜索,所以它可能不够精确。欢迎任何更正或补充
我认为原型链是:Object
> Function
> Number
:
Number instanceof Function; // true
Number instanceof Object; // true
Function instanceof Object; // true
- 使用“;这个“;JavaScript原型方法中的关键字
- Node.js中的JavaScript原型对象效率
- 为什么要返回'这'在导致循环的JavaScript原型中
- JavaScript原型设计基础知识
- 就良好实践而言,带闭包的javascript原型是一件好事吗
- 无法从angularjs调用JavaScript原型函数
- JavaScript原型示例
- Javascript原型组织
- 未复制JavaScript原型
- JavaScript原型的意义到底是什么
- 两个对象之间的Javascript原型
- 使用特权Getter/Setter函数的JavaScript原型函数
- 语法错误,但无法调试JavaScript原型
- 澄清:Javascript原型更新混乱
- 如何进行JavaScript原型继承(原型链)
- Javascript原型通用Enquries和通过数组索引分配Id
- 理解Javascript原型继承
- JavaScript原型与实践中的对比
- JavaScript原型构造函数只调用过一次
- Javascript原型继承原型函数调用