存在疑难:

  • 什么是原型对象?
  • 什么是构造函数?
  • 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的原型链继承