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;

 

 

posted @ 2017-09-26 14:37  前端一年级  阅读(385)  评论(0编辑  收藏  举报