关于前端学习:Javascript对象原型与原型链

28次阅读

共计 957 个字符,预计需要花费 3 分钟才能阅读完成。

  • 理解函数属性——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.prototype
    Array.prototype.__proto__ === Object.prototype
    数组.__proto__.__proto__ === Object.prototype

正文完
 0