Javascript整理-原型和原型链

121 阅读1分钟
  • 构造函数 funciton Person() {}
  • 实例 const person = new Person()
  • 原型 Person.prototype
  • 隐藏属性 constructor
    • 等式 1:person.constructor === Person
    • 等式 2:Person.prototype.constructor === Person
  • new
    • new 的原生例子
    • 手写 new:判断首参为函数;通过 Object.create() 创建新对象并且绑定原型链;通过 call 或者 apply 修正 this 指向和传参;通过 typeof 判断函数对象和普通对象;函数对象和普通对象返回构造函数的 return 值,否则返回新对象
    • 通过对手写 new 过程的了解来做题
  • 查找实例对应的对象的原型 person.__proto__ === Person.prototype
  • 函数对象指向
    • person.__proto__ === Person.prototype
    • Person.__proto__ === Function.prototype
  • 普通对象指向
    • obj.__proto__ === Object.prototype
  • 原型链
    • foo.__proto__ === Object.prototype
    • F.__proto__ === Function.prototype
    • F.__proto__.__proto__ === Object.prototype