- 原型(prototype):每个函数都有一个 prototype 属性,它默认指向一个空的 Object 对象(即原型对象);原型对象中有一个 constructor 属性,它指向函数对象;一般常用来给原型对象添加方法,使其所有的实例对象都自动拥有该方法
- 显示原型与隐式原型:
- 每个构造函数都有一个 prototype(显式原型)
- 每个实例都有一个 proto(隐式原型)
- 实例对象的隐式原型的值是其构造函数的显示原型的值
- 原型链:访问一个对象的属性时,先在其自身查找,如果没有再沿着隐式原型查找,如果最终还没有找到则返回 undefined。
- 原型链的终点:原型链的终点为 Object() 的显示原型的隐式原型,指向为 null
- instanceof 的原理:就是看被判断的对象的 prototype 是否在判断的对象的 proto 原型链上