JavaScript 中所有的对象都有一个内置属性,称为它的 prototype(原型)。它本身是一个对象,故原型对象也会有它自己的原型,逐渐构成了原型链。原型链终止于拥有 null
作为其原型的对象上。
Object.prototype
,它是最基础的原型,所有对象默认都拥有它。 Object.prototype
的原型是 null
,所以它位于原型链的终点。
当你试图访问一个对象的属性时:如果在对象本身中找不到该属性,就会在原型中搜索该属性。如果仍然找不到该属性,那么就搜索原型的原型,以此类推,直到找到该属性;或者到达链的末端,在这种情况下,返回 undefined
。
获取原型
Object.getPrototypeOf(obj)
标准方式
obj.__proto__
所有浏览器中,对象都会有这个属性,指向原型
设置原型
Object.create()
设置原型
1 | const personPrototype = { |
构造函数 设置原型
所有函数都有 prototype
属性
将函数调用为 构造函数 时,此属性指向的对象 被设置为新建对象的原型
1 | const personPrototype = { |