上篇文章给大家分享了 js继承中的 原型式继承
今天给大家分享一下 js 继承中的 寄生式继承
寄生式继承(Parasitic Inheritance)是一种基于原型式的继承方式,它通过创建一个仅用于封装继承过程的函数,该函数在内部调用原型式继承创建一个对象,然后增强该对象,最后返回这个对象。
基本步骤:
// 1 寄生式继承函数
function createChild(parent) {
// 2 通过原型式继承创建一个新对象
var child = Object.create(parent);
// 3 增强新对象
child.sayGoodBye = function() {
console.log('GoodBye: ' + this.name)
}
// 4
return child
}
var parent = {
name: "Parent",
sayHello: function() {
console.log("Hello, " + this.name + "!");
}
};
// 使用寄生式继承创建子对象
var child = createChild(parent)
child.name = 'John'
child.sayHello(); // Hello, John!
child.sayGoodBye(); // Goodbye, John
通过这种方式,子对象child
可以继承父对象Parent
的属性和方法,并且还可以增加自己的方法。
需要注意的是,寄生式继承与原型式继承类似,子对象通过继承来创建,但是可以在创建过程中添加额外的属性和方法。
总的来说,虽然寄生式继承具有一定的灵活性和可用性,但由于上述缺点的存在,它并不是一个被广泛使用的继承方式。在实际开发中,需要权衡其优缺点,根据具体情况选择合适的继承方式。
牵手 持续为你分享各类知识和软件 ,欢迎访问、关注、讨论 并留下你的小心心❤