JavaScript学习笔记(三十四) 经典模式四-共享原型

本文深入探讨了共享原型模式,一种在JavaScript中实现继承的高效方法。通过将成员添加到原型而非实例对象,该模式创建了一个快速原型链查找机制。然而,它也存在潜在风险,即修改原型会影响所有继承自该原型的对象。文章结合实例说明了这种模式的使用场景及优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

经典模式四-共享原型(Classical Pattern #4—Share the Prototype)

不像前面的经典继承模式需要调用两次parent构造函数,下面这个模式根本不需要调用parent构造函数。

经验法则复用的成员应该添加到原型(prototype)而不是this。因此为了继承这个目的,任何值得继承的东西都应该在原型中。
那么你可以设置child的原型和parent的原型一样:
function inherit(C, P) {
    C.prototype = P.prototype;
}
这样会得到一个短且快的原型链查找,因为所有的对象实际上共享一样的原型。但是这也是一个弊端,因为如果一个child或者grandchild修改了原型,它将会影响所有的parents和grandparents。

就像图6-7所示,child和parent对象共享相同的原型并且访问相同的say()方法。然而,children对象不会继承name属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值