千家信息网

js组合继承的优缺点有哪些

发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,这篇文章主要为大家展示了"js组合继承的优缺点有哪些",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"js组合继承的优缺点有哪些"这篇文章吧。1、优点是可以实
千家信息网最后更新 2025年02月07日js组合继承的优缺点有哪些

这篇文章主要为大家展示了"js组合继承的优缺点有哪些",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"js组合继承的优缺点有哪些"这篇文章吧。

1、优点是可以实现函数复用,保证每个实例之间的属性不会相互影响。

2、缺点是超类型属性继承两次,一次是子类型原型继承,一次是子类型实例继承,但实例继承的属性屏蔽了原型继承的属性。

实例

// 父构造函数function Father(name) {    this.child = {        name: name    }}// 父原型上绑定方法Father.prototype.alertName = function () {    console.log(this.child)}// 子构造函数 借用构造函数继承父function Children(name) {    Father.call(this, name)}// 原型链继承Children.prototype = new Father() Children.prototype.constructor = Children // 子原型上创建 函数Children.prototype.speakName = function () {    console.log('speakName')}// 创建子实例let c1 = new Children('c1')let c2 = new Children('c2')// 修改引用类型值 namec1.child.name = '修改引用类型值' // 组合继承做到了2件事:// 1.复用原型方法// 2.实例属性隔离 c1.alertName()// { name: '修改引用类型值' } c1.speakName()// speakName c2.alertName()// { name: 'c2' } c2.speakName()// speakName console.log(c1 instanceof Father)//true

以上是"js组合继承的优缺点有哪些"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0