以下代码摘自《javascript语言精粹》4.7节(P32),为了方便测试我略微修改了下代码:
我的困惑:Number.method()
这个方法是在什么地方定义的呢?或者说可不可以这么理解:Number下没有method()
方法,于是Number.method()
实际上查找的是Number.prototype.method()
,如果是第二个假设的话,那么Number.prototype.method()
又是在什么地方定义的呢?
第一个函数定义的可是Function.prototype.method()
的呀?我把第一个函数换成Object.prototype.method()
也是好使的,但是换成其他的关键字就不好使了,例如Number.prototype.method()
就不好使了,这是为什么呢?难道说这里的Object包含Function?如果真的是包括的话,那它和typeof的object值不包含 function值,如何区分?
我知道ECMAScript 有 5 种原始类型(primitive type),即 Undefined、Null、Boolean、Number 和 String,那么Function.prototype.method
中的Function是什么?应该怎么称呼?我需要搜索什么关键字才能学习到相关的知识点?
相关分类