JS实现继承的几种方式
借用构造函数实现继承
1 2 3 4 5 6 7 |
function Parent1(){ this.name = "parent1" } function Child1(){ Parent1.call(this); this.type = "child1"; } |
缺点:Child1无法继承Parent1的原型对象,并没有真正的实现继承(部分继承)
借用原型链实现继承
1 2 3 4 5 6 7 8 |
function Parent2(){ this.name = "parent2"; this.play = [1,2,3]; } function Child2(){ this.type = "child2"; } Child2.prototype = new Parent2(); |
缺点:原型对象的属性是共享的
组合式继承
1 2 3 4 5 6 7 8 9 10 |
function Parent3(){ this.name = "parent3"; this.play = [1,2,3]; } function Child3(){ Parent3.call(this); this.type = "child3"; } Child3.prototype = Object.create(Parent3.prototype); Child3.prototype.constructor = Child3;
|
重拾梦想 改写人生