显示原型与隐式原型

  • 每个函数function在定义时都有一个属性prototype,称为显示原型。
  • 每个实例对象创建时都有一个属性proto,称为隐式原型。
  • 实例对象的隐式原型的值为对应构造函数的显示原型的值。

注意: 显示原型可以操作,隐式原型不能直接操作(ES6之前)

1
2
3
4
5
6
7
function Fun(){ // 内部语句 this.prototype = {};

}

var fun = new Fun();

console.log(Fun.prototype === fun.__proto__) // true