每天 10 分钟,学习 JavaScript —— (九)显式原型与隐式原型

184 阅读1分钟
  • 定义构造函数 每个函数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
  • 显式原型与隐式原型关系

image.png