对象的原型与原型链
2024年7月29日小于 1 分钟
对象的原型与原型链
原型
在JavaScript中,每个对象都拥有一个特殊的属性prototype,这个属性被称为原型。
当试图访问一个对象的属性时,不仅仅会在该对象上搜索,还会在该对象的原型上搜索,
以及该对象原型的原型,依次向上,直到命中属性或者到达顶部。
原型链
在JS中原型也是一个对象,所以原型也拥有原型。这个依次向上形成的链路就被称为原型链。
原型链与原型解决的问题
- 继承问题: 在Js中允许通过原型继承另一个对象上的属性和方法.
- 复用问题: 通过共享原型实现对象的复用,而不用复制对象,造成代码冗余。
缺点
原型污染: 如果修改顶层对象的原型的话,会给所有继承的后代带来意外的错误。
性能的问题:多层原型链的情况下,没有直接访问对象属性快。
概念的混淆