- 定义构造函数 每个函数function都有一个prototype,即 显式原型,在定义函数时自动添加,默认值是一个空Object对象
function Fn() {
// 内部自动执行语句:this.prototype = { }
}
console.log(Fn.prototype)
- 创建实例对象 每个实例对象都有一个__proto__,即 隐式原型,创建对象时自动添加,默认值为构造函数的prototype属性值
var fn = new Fn() // 内部自动执行语句:this.__proto__ = Fn.prototype
console. log(fn.__proto__)
对象的隐式原型的值为其对应构造函数的显式原型的值
console.log(Fn.prototype === fn.__proto__) // true
- 给原型添加方法
Fn.prototype.test = function () {
console.log('test')
}
- 通过实例对象调用原型方法
fn.test() // 打印 test
- 显式原型与隐式原型关系