1.prototype的本质
prototype的本质2.全局方法的prototype
var s = new String('1')
s.__proto__ === String.prototype
s.__proto__.__proto__ === Object.prototype
其余的Number和Boolean
3.__proto__
和prototype的区别
__proto__
是有代码之后出现的 --> 对象的属性
prototype是浏览器本身存在的 --> 函数的属性
__proto__
出现后,指向共有属性的prototype,这两个东西存的地址是相同的
4.对象.__proto__
===函数.prototype
从var s = new String()
这语句可以得出 var 对象 = new 函数()
这个式子
对象.__proto__ ===函数.prototype
,这个式子成立的原因是因为对象是由函数构造的,所以对象的__proto__
是指向函数的prototype的。
从上面的式子我们可以继续推论:
函数.prototype.__proto__ === Object.prototype
函数.__proto__ === Function.prototype
Function既是函数,也是对象,所以可以的出:
Function.__proto__ === Function.prototype
所以可以的出:
Function.prototype.__proto__ === Object.prototype
以上的式子可以推出来的条件建立在
Function特性Function
的prototype和__proto__
都指向同一个对象。
网友评论