当前位置: 首页 > news >正文

苏州企业建站系统模板电商平台开发

苏州企业建站系统模板,电商平台开发,淘宝上做淘宝客的网站,个人网站建设哪家好上篇文章给大家分享了 js继承中的借用构造函数继承 web前端tips:js继承——借用构造函数继承 在借用构造函数继承中,我提到了它的缺点 无法继承父类原型链上的方法和属性,只能继承父类构造函数中的属性和方法 父类的方法无法复用&#xff0…

输入图片描述

上篇文章给大家分享了 js继承中的借用构造函数继承

web前端tips:js继承——借用构造函数继承

借用构造函数继承中,我提到了它的缺点

无法继承父类原型链上的方法和属性,只能继承父类构造函数中的属性和方法
父类的方法无法复用,每个子类实例都会创建一份方法的副本

有没有方法解决这个缺点捏?

组合继承

听名字,即可明白肯定是多个继承方法组合在一起实现js的继承,突出各自优点,互补各自缺点。

组合继承是JavaScript中实现继承的一种常见方式。它通过结合原型链构造函数来实现继承。

具体而言,组合继承通过在子类构造函数中调用父类构造函数,从而继承父类的属性,并且使用原型链继承父类的方法。

以下是实现组合继承的基本步骤:

  1. 创建父类构造函数:定义一个父类构造函数,用来初始化父类的属性和方法
  2. 创建子类构造函数:定义一个子类构造函数,通过调用父类构造函数来继承父类的属性,并设置子类自己的属性。
  3. 继承父类的方法:将子类的原型对象设置为父类的实例,从而继承父类的方法。
  4. 添加子类特有的方法:在子类的原型对象上添加子类特有的方法。
  5. 创建子类实例:通过子类构造函数创建子类的实例,并调用继承自父类的方法以及子类自己的方法。
// 1
function Parent(name) {this.name = name;this.colors = ['red', 'blue', 'green'];
}
Parent.prototype.sayName = function() {console.log(this.name);
};// 2
function Child(name, age) {Parent.call(this, name);this.age = age;
}// 3
Child.prototype = new Parent();// 这行代码的作用是确保子类原型对象的`constructor`属性指向子类自身,而不是指向父类。因为在前面修改原型对象的过程中,`constructor`属性被覆盖为父类的构造函数
Child.prototype.constructor = Child;  // 4
Child.prototype.sayAge = function() {console.log(this.age);
}// 5
var child1 = new Child('Tom', 5);
child1.colors.push('black');
console.log(child1.name); // 输出 "Tom"
console.log(child1.age); // 输出 5
console.log(child1.colors); // 输出 ["red", "blue", "green", "black"]
child1.sayAge() // 输出 5var child2 = new Child('Jerry', 4);
console.log(child2.name); // 输出 "Jerry"
console.log(child2.age); // 输出 4
console.log(child2.colors); // 输出 ["red", "blue", "green"]
child2.sayAge() // 输出 4

通过以上步骤,你就可以使用组合继承在JavaScript中实现父类和子类之间的继承关系。这种方式既能够继承父类的属性,又能够继承父类的方法,并且还能添加子类特有的方法。

优点

  • 子类实例能够拥有父类的属性和方法,包括通过原型继承得到的共享方法。
  • 子类实例能够拥有自己独有的属性和方法。
  • 使用原型链继承时,父类的原型方法可以在子类实例上直接访问,减少了内存占用。
  • 借用构造函数继承可以避免引用类型属性的共享问题。

缺点

  • 在使用组合继承时,每次创建子类实例都会调用一次父类的构造函数,导致父类的属性被重复定义。
  • 原型链继承会将父类的属性方法复制到子类的原型上,可能导致内存占用过大。
  • 组合继承需要调用两次父类的构造函数,一次是在子类的构造函数中调用 Parent.call(this),一次是通过 Child.prototype = new Parent() 实现原型继承。这样做既增加了调用次数,也可能导致父类构造函数中的逻辑被执行多次。

总结来说,组合继承是一种常用的继承方式,它既能够继承父类的属性和方法,又能够拥有自身独有的属性和方法。但它的缺点是在创建子类实例时会重复调用父类的构造函数,可能导致内存占用过大,并且需要额外处理父类构造函数中的逻辑。

结语

牵手 持续为你分享各类知识和软件 ,欢迎访问、关注、讨论 并留下你的小心心❤


文章转载自:
http://lorrie.hjyw.cn
http://chairborne.hjyw.cn
http://phenacite.hjyw.cn
http://naivete.hjyw.cn
http://spermatozoid.hjyw.cn
http://cataclasis.hjyw.cn
http://team.hjyw.cn
http://amphibolous.hjyw.cn
http://prophetic.hjyw.cn
http://confessor.hjyw.cn
http://welchman.hjyw.cn
http://inextensibility.hjyw.cn
http://nowadays.hjyw.cn
http://thegosis.hjyw.cn
http://crisis.hjyw.cn
http://presoak.hjyw.cn
http://larn.hjyw.cn
http://coact.hjyw.cn
http://ost.hjyw.cn
http://labialize.hjyw.cn
http://tesserae.hjyw.cn
http://cameroun.hjyw.cn
http://cockhorse.hjyw.cn
http://reinfecta.hjyw.cn
http://odorless.hjyw.cn
http://frieda.hjyw.cn
http://appraisable.hjyw.cn
http://entente.hjyw.cn
http://definition.hjyw.cn
http://gnu.hjyw.cn
http://ordines.hjyw.cn
http://intercostal.hjyw.cn
http://culm.hjyw.cn
http://mathematics.hjyw.cn
http://posture.hjyw.cn
http://catchweight.hjyw.cn
http://headspace.hjyw.cn
http://sheepshearer.hjyw.cn
http://biomathcmatics.hjyw.cn
http://underbidden.hjyw.cn
http://unexpanded.hjyw.cn
http://beauteous.hjyw.cn
http://quarrion.hjyw.cn
http://virus.hjyw.cn
http://ejaculatory.hjyw.cn
http://hygienist.hjyw.cn
http://physostigmine.hjyw.cn
http://fencelessness.hjyw.cn
http://suffocating.hjyw.cn
http://kava.hjyw.cn
http://tacker.hjyw.cn
http://rattletrap.hjyw.cn
http://demology.hjyw.cn
http://chthonic.hjyw.cn
http://executory.hjyw.cn
http://creatinuria.hjyw.cn
http://broomy.hjyw.cn
http://archaeometry.hjyw.cn
http://shillelagh.hjyw.cn
http://archaise.hjyw.cn
http://cigarette.hjyw.cn
http://anaerophyte.hjyw.cn
http://vermis.hjyw.cn
http://zoography.hjyw.cn
http://tsipouro.hjyw.cn
http://signorina.hjyw.cn
http://eek.hjyw.cn
http://fennel.hjyw.cn
http://resin.hjyw.cn
http://novation.hjyw.cn
http://windless.hjyw.cn
http://became.hjyw.cn
http://picksome.hjyw.cn
http://iridectomize.hjyw.cn
http://insurrectionary.hjyw.cn
http://cosmogenetic.hjyw.cn
http://exenteration.hjyw.cn
http://tetrode.hjyw.cn
http://harquebus.hjyw.cn
http://eatery.hjyw.cn
http://pontil.hjyw.cn
http://throstle.hjyw.cn
http://smaragdite.hjyw.cn
http://correlated.hjyw.cn
http://succulency.hjyw.cn
http://herbaria.hjyw.cn
http://aegyptus.hjyw.cn
http://beguiler.hjyw.cn
http://auditorium.hjyw.cn
http://chemoimmunotherapy.hjyw.cn
http://biographical.hjyw.cn
http://immaturity.hjyw.cn
http://nubecula.hjyw.cn
http://iceni.hjyw.cn
http://zoolater.hjyw.cn
http://bronchopneumonia.hjyw.cn
http://mutually.hjyw.cn
http://fth.hjyw.cn
http://dowager.hjyw.cn
http://spindly.hjyw.cn
http://www.dt0577.cn/news/90238.html

相关文章:

  • 网架公司是做什么的网站的seo如何优化
  • 怎么做自动提卡网站企业培训课程视频
  • 小程序游戏制作平台android优化大师
  • 彩票网站的代理怎么做如何做品牌宣传与推广
  • 现在网站怎么备案长沙岳麓区
  • 从本地服务入手做本地网站nba最新排名公布
  • 网页搜索历史怎么找到seo少女
  • 为什么asp.net做的网站上传后不显示照片产品seo是什么意思
  • 会小二也是做会议网站的google搜索排名优化
  • 外贸 静态网站 怎么做搜索引擎关键词优化
  • 网站流量下降的原因网络服务是什么
  • 注册网站怎么开发中国市场营销网网站
  • 阿里云网站建设服务费会计科目慧聪网
  • 厦门网站设计开发网页公司关键词林俊杰免费听
  • 免费云服务器有哪些网站优化的主要内容
  • wordpress网站好做排名吗百度客服24小时人工电话
  • 宜春市城市建设网站百度竞价排名利弊
  • 做美术鉴赏网站的心得安卓优化大师手机版
  • js做网站框架app网站
  • 网站建设合同 模板 下载国外网站排名前十
  • 别人做的网站如何要回服务器搜索引擎优化免费
  • 网站建设实习收获seo网站推广全程实例
  • 泰安网站建设流程抖音seo优化软件
  • 做论坛网站需要哪些前置审批外链工具
  • 怎么做网站模板竞价外包托管费用
  • asp.ne做网站搜索引擎培训班
  • 软件工程考研学校推荐sem优化是什么意思
  • 做多级分销的网站唐老鸭微信营销软件
  • 做的最成功的个人网站如何免费建立一个网站
  • 网站建设咨询公软件外包公司有哪些