__proto__和prototype

prototype(显式原型)

每一个函数在创建之后都会拥有一个名为prototype的属性,这个属性指向函数的原型对象。

显式原型的作用:用来实现基于原型的继承与属性的共享

__proto__(隐式原型)

隐式原型指向创建这个对象的函数(constructor)的__proto__

隐式原型的作用:构成原型链,同样用于实现基于原型的继承。举个例子,当我们访问obj这个对象中的x属性时,如果在obj中找不到,那么就会沿着__proto__依次查找。

关系

对象的隐式原型指向创建这个对象的构造函数(constructor)的显示原型.

左侧:实例

中间:构造函数

右侧:原型对象

构造函数的prototype指向原型对象,原型对象的constructor属性指向构造函数,构造函数new出来的实例有一个proto属性指向原型对象

 

 参考文章

https://www.zhihu.com/question/34183746

 

posted @ 2019-08-21 23:07  知了呀  阅读(150)  评论(0)    收藏  举报