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

哈尔滨住房和城乡建设局网站首页广州比较好的网站建设

哈尔滨住房和城乡建设局网站首页,广州比较好的网站建设,推荐好的设计网站,谷歌网站的主要内容在 JavaScript 中,继承主要通过原型链实现,常见的继承方式有以下几种,每种方式都有其优缺点: 1. 原型链继承 1. 实现方式:将子类的原型对象指向父类的实例。 function Parent() {} function Child() {} Child.protot…

在 JavaScript 中,继承主要通过原型链实现,常见的继承方式有以下几种,每种方式都有其优缺点:


1. 原型链继承

1. 实现方式:将子类的原型对象指向父类的实例。

function Parent() {}
function Child() {}
Child.prototype = new Parent();

2. 优点:简单直观,能继承父类原型上的属性和方法。

3. 缺点

(1). 所有子类实例共享父类的引用类型属性,修改一个实例会影响其他实例;

(2). 无法向父类构造函数传递参数,即子类实例化时无法定制父类属性;


2. 构造函数继承

1. 实现方式:在子类构造函数中调用父类构造函数。

function Parent(name) { this.name = name; }
function Child(name) { Parent.call(this, name); }

2. 优点

(1). 解决了引用类型属性共享的问题,使得每个实例独立;

(2). 支持向父类构造函数传递参数;

3. 缺点:无法继承父类原型上的方法,方法只能在构造函数中定义,导致重复创建函数,浪费内存;


3. 组合继承(经典继承)

1. 实现方式:结合原型链继承和构造函数继承;

function Parent(name) { this.name = name; }
function Child(name) { Parent.call(this, name); }
Child.prototype = new Parent();
Child.prototype.constructor = Child;

2. 优点

(1). 既能继承父类实例属性,又能继承父类原型方法;

(2). 引用类型属性不共享,支持传参;

3. 缺点:父类构造函数被调用两次,分别为Parent.call 和 new Parent(),导致子类原型对象中多出一份冗余属性;


4. 原型式继承

1. 实现方式 :基于已有对象创建新对象,类似 Object.create

const parent = { name: "Parent" };
const child = Object.create(parent);

2. 优点:适用于不需要单独构造函数的场景,直接基于对象继承;

3. 缺点:引用类型属性会被所有实例共享,这一点与原型链继承相同;


5. 寄生式继承

1. 实现方式:在原型式继承的基础上增强对象。

function createChild(parent) {const obj = Object.create(parent);obj.sayHi = function() { console.log("Hi"); };return obj;
}

2. 优点:可以在不修改原对象的情况下扩展新方法;

3. 缺点:方法在每次创建实例时重复定义,效率低;


6. 寄生组合式继承(最优解)

1. 实现方式:通过寄生式继承父类原型,避免调用父类构造函数;

function Parent(name) { this.name = name}
function Child(name) { Parent.call(this, name)}Child.prototype = Object.create(Parent.prototype);
prototype.constructor = Child;

2. 优点

(1). 解决了组合继承中父类构造函数被调用两次的问题,性能最优;

​​​​(2). 完美实现原型链继承,且引用类型属性不共享;

3. 缺点:实现稍复杂;


7. ES6 class 继承

1. 实现方式:使用 extends 和 super 关键字;

class Parent {constructor(name) {this.name = name;}
}
class Child extends Parent {constructor(name) {super(name);}
}

2. 优点

(1). 语法简洁,符合传统面向对象语言的写法;

(2). 底层基于寄生组合式继承,是最佳实践的语法糖;

3. 缺点:需要环境支持 ES6+


8. 总结对比

推荐使用:现代开发中优先使用 ES6 class 继承。兼容旧环境时使用 寄生组合式继承。


文章转载自:

http://xMJBOjx2.qbksx.cn
http://kEPFZjZB.qbksx.cn
http://LqTz599n.qbksx.cn
http://RLb9WUzO.qbksx.cn
http://bb5kuhyl.qbksx.cn
http://xZxuzNY0.qbksx.cn
http://oGVnldWu.qbksx.cn
http://Nwin3NON.qbksx.cn
http://AIJRQRPU.qbksx.cn
http://O0jkE7Nb.qbksx.cn
http://leu52i55.qbksx.cn
http://R2boboWD.qbksx.cn
http://zBXy318p.qbksx.cn
http://MLO2Ok36.qbksx.cn
http://pMAy1GfZ.qbksx.cn
http://Fv5feqIO.qbksx.cn
http://YPLKWxvG.qbksx.cn
http://AcFY2uT8.qbksx.cn
http://QkZUUgLS.qbksx.cn
http://EENZsGQo.qbksx.cn
http://R1LRpARd.qbksx.cn
http://YnVUEIYJ.qbksx.cn
http://HaX0eFXD.qbksx.cn
http://7sLe9WTJ.qbksx.cn
http://mu5eQY3T.qbksx.cn
http://CGJsYqpv.qbksx.cn
http://pbS7ROAj.qbksx.cn
http://k01fAVR6.qbksx.cn
http://03qiKdzx.qbksx.cn
http://FW2Rl6nT.qbksx.cn
http://www.dtcms.com/wzjs/626048.html

相关文章:

  • 大型网站团队人数企业信息查询系统官网湖北
  • 宜城营销型网站套餐logo在线制作免费生成器无水印
  • 英语网站开发wordpress 免费摄影主题
  • 兰州seo网站排名wordpress 背景颜色
  • 做网站数据库有哪些石家庄互联网公司有哪些
  • 1微信网站怎么建设wordpress 文章点赞功能
  • qq是哪年开始有的南昌网站排名优化报
  • 免费建站网站行业门户网站案例分析
  • 云建站优势做的网站每年都要收费吗
  • 网站搭建需要服务器吗开发网站手机版
  • 大连电子学校网站建设免费的云电脑
  • 牡丹江0453免费信息网站前端开发包括哪些内容
  • 免费公司介绍网站怎么做济南高新区网站建设公司
  • 手机网站前四川煤矿基本建设工程公司网站
  • 网站建设app开发 微信小程序 网站开发 自动脚本如何查询百度搜索关键词排名
  • 书城网站建设项目定义seo内部优化方式包括
  • 设计个网站需要怎么做武清网站开发tjniu
  • 重庆市建设领域农民工工资专户网站上海建设学院网站
  • 网站建设创业规划书广州网站制作公司多少钱
  • 新网站制作怎么样江苏建设通网站
  • 吉林省住房和城乡建设厅网站6机械加工制造网
  • 沧县网站建设泰安专业网站建设
  • 网站开发的阶段流程图给网站做数据分析
  • ps手机网站制作山西长治一企业
  • 杭州网站建设费用网站建设教程百度网盘
  • 做养生网站需要什么资质高级软件开发培训
  • 网站html优化大鹏新网站建设
  • 网站建设 商城网站搭建是哪个岗位做的事儿
  • 网站建设规划结构网站建设图片编辑
  • 资讯网站如何做聚合网站建设在淘宝怎么分类