prototype(显式原型)
每一个函数在创建之后都会拥有一个名为prototype的属性,这个属性指向函数的原型对象。
显式原型的作用:用来实现基于原型的继承与属性的共享
__proto__(隐式原型)
隐式原型指向创建这个对象的函数(constructor)的__proto__
隐式原型的作用:构成原型链,同样用于实现基于原型的继承。举个例子,当我们访问obj这个对象中的x属性时,如果在obj中找不到,那么就会沿着__proto__依次查找。
关系
对象的隐式原型指向创建这个对象的构造函数(constructor)的显示原型.
左侧:实例
中间:构造函数
右侧:原型对象
构造函数的prototype指向原型对象,原型对象的constructor属性指向构造函数,构造函数new出来的实例有一个proto属性指向原型对象