__proto__和prototype的本质和区别

2020-07-23  本文已影响0人  凉城十月

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的prototype和__proto__都指向同一个对象。

Function特性
上一篇下一篇

猜你喜欢

热点阅读