JavaScript 原型、原型链
原型
1 | const Person = function() {}; // 所有的函数都能成为构造函数 |
原型链
原型链是有原型对象组成的,每个对象都有 proto属性,指向了创建该对象的构造函数的原型,proto 将对象连接起来组成了原型链。是一个用来实现继承和共享属性的有限对象链。
属性查找机制:当查找对象属性时,如果实例对象自身不存在该属性,则沿着原型链往上一级查找,找到时则输出,不存在时,则沿着原型链往上一级查找,直至最顶级的原型对象
Object.prototype
,如果还是没有找到则输出undefined
属性修改机制:只会修改实例本身的属性,如果不存在,则添加该属性,如果需要修改原型的属性时,则可以用
b.prototype.x = 2
; 但这样会造成所有继承于该对象的实例的属性发生改变.