构造函数及原型对象

存在疑问:

  • 什么是原型对象?
  • 什么是构造函数?
  • prototype/__proto__/constructor都是什么?

寻找答案:

2021/8/11 更新
  1. prototype 存储的是一个引用,引用的是原型对象的地址
  2. __proto__ 存储的是原型链指针,指向上一层的原型对象,即Child.__proto__ === Parent.prototype
  3. 构造函数是一个模板,生成实例对象的模板,Person就是一个构造函数
function Person() {}
Person.prototype = {
    constructor: Person,
    __proto__: parent.prototype,
    // other prototype properties: ...
}
  1. 函数的原型对象的构造器 constructor 默认指向函数本身
  2. 原型对象除了自有的原型属性外,为了实现继承,还有一个原型链指针 __proto__ ,该指针指向上一层的原型对象
  3. 上一层的原型对象的结构依然类似,这样利用 __proto__ 一直指向 Object 的原型对象上
  4. Object 的原型对象用 Object.prototype.__proto__ = null 表示原型链的最顶端
  5. 如此便形成了javascript的原型链继承

你可能感兴趣的:(javascript前端)