js 六种继承方式介绍及优缺点
Excerpt
js 六种继承方式介绍及优缺点Excerpt前言 在JavaScript高级程序设计一书中,提到js中有六种继承方式,但阅读后,个人觉得这六种方式,其实最终也只是对原型和构造函数通过不同的技巧实...
rpt
前言 在JavaScript高级程序设计一书中,提到js中有六种继承方式,但阅读后,个人觉得这六种方式,其实最终也只是对原型和构造函数通过不同的技巧实现的继承设计方式罢了,为了满足需要其实我们也可以自
前言
在JavaScript高级程序设计一书中,提到js中有六种继承方式,但阅读后,个人觉得这六种方式,其实最终也只是对原型和构造函数通过不同的技巧实现的继承设计方式罢了,为了满足需要其实我们也可以自己去定义技巧实现继承,那么如此说来继承方式岂非不是仅仅只有六种乎?
继承方式
原型链继承
借用构造函数继承
组合继承
原型式继承
寄生继承
寄生组合继承
详情介绍
1.原型链继承
缺点:Parent 中的引用属性会被每个子类示例共享
2.借用构造函数继承
优点:
1避免了子类示例共享引用属性的情况
2可以在实例化时给Parent构造函数传递参数
缺点:
1如果Parent中存在一个函数,那么每次实例化Children的时候,都会创建一个同样函数,函数的复用性就难以体现
3组合继承:原型链 + 构造函数 (这是js中最常见的继承方式)
优点:
1 避免了子类共享引用属性同时避免了父类构造函数重复对function属性的创建
4.原型式继承(注意:是原型式而非原型链,这种方法使用较少)
缺点:
1和原型链继承一样,后代实例会共享父类引用属性
5寄生式继承(个人感觉就是定义了一个方法,复制了一个对象,让后在复制的对象上添加属性和方法,然后return)
缺点:
1和原型链继承一样,parent中的引用属性,会被所有示例共享
6寄生组合式继承 (寄生+组合(原型链+借用构造函数))
优点:
1和组合继承一样,只不过没有组合继承的调用两次父类构造函数的缺点
领取专属 10元无门槛券
私享最新 技术干货