• 理解函数属性——prototype

    • prototype是每一个函数天生自带的属性,prototype属性又指向一个prototype对象,prototype属性和prototype对象是两个不同的货色
    • prototype(原型对象)对象外部有一个constructor属性,constructor属性指向一个constructor对象,constructor对象就是这个函数自身

  • 理解函数属性——__proto__

    • __proto__属性是每一个对象天生自带的属性,指向所属函数的原型对象,实例化对象也是对象,所以也带有__proto__属性
    function Person(name,age){  this.name = name  this.age = age  this.sayHi = function (){       console.log('hello')}let p1 = new Person('Jack',18)let p1 = new Person('Rose',20) 

  • 理解对象拜访机制

    • 当拜访一个对象成员的时候,如果对象自身有该成员,则间接返回后果,进行查问;如果自身没有,则主动去 __proto__ 上拜访查找,如果还没有,持续去__proto__ 上拜访查找,直到顶级对象的 __proto__都没有就返回 undefined
    • 每一个函数天生自带一个属性 prototype属性,是一个对象
    • 每一个对象天生自带一个属性 __proto__属性,用于指向所属构造函数的 prototype
    • 当一个对象没有精确的构造函数来实例化时,那么默认看作是内置构造函数 Object 的实例对象
  • 原型

    • 原型是每个函数天生自带的一个叫做 prototype属性,prototype属性指向寒素的prototype原型对象
    • prototype中的constructor属性(结构器)指向以后原型对象所属的构造函数

  • 原型链

    • 从任何对象登程,依照 __proto__开始往上查找,最终都能查找到 Object.prototype,那么由__proto__串联起来的对象链状构造叫做原型链
    数组.__proto__ === Array.prototypeArray.prototype.__proto__ === Object.prototype数组.__proto__.__proto__ === Object.prototype