Javascript整理-原型和原型链
- 构造函数
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