js實現繼承的方式以及各個方式的優缺點

2021-09-26 16:00:57 字數 1588 閱讀 7320

1、借助建構函式實現繼承,缺點是不能繼承parent1的原型物件

/**

* 借助建構函式實現繼承

*/function

parent1()

function

child1()

2、借助原型鏈實現繼承,缺點是parent2的原型物件是共用的
/**

* 借助原型鏈實現繼承

*/function

parent2()

function

child2()

child2.prototype =

newparent2()

;var s1=

newchild2()

;var s2=

newchild2()

;s1.play.

push(4

);console.

log(s1,s2)

;

3、組合方式實現繼承,缺點是parent3執行兩次
/**

* 組合方式

*/function

parent3()

function

child3()

child3.prototype =

newparent3()

;var s3=

newchild3()

;var s4=

newchild3()

;s1.play.

push(4

);console.

log(s3,s4)

;

4、組合方式實現繼承優化一,缺點是無法區分例項是由父類創造還是子類創造
/**

* 組合方式優化一

*/function

parent4()

function

child4()

child4.prototype = parent4.prototype;

var s5=

newchild4()

;var s6=

newchild4()

;s5.play.

push(4

);console.

log(s5.construtor)

;//parent4

5、組合方式實現繼承優化二(最優寫法)
/**

* 組合方式優化二

*/function

parent5()

function

child5()

child5.prototype = object.

create

(parent5.prototype)

;child5.prototype.construstor = child5;

var s7=

newchild4()

;var s8=

newchild4()

;s5.play.

push(4

);console.

log(s7.construtor)

;//child5

JS繼承的實現方式

前言 js作為物件導向的弱型別語言,繼承也是其非常強大的特性之一。那麼如何在js中實現繼承呢?讓我們拭目以待。既然要實現繼承,那麼首先我們得有乙個父類,如下 定義乙個動物類 function animal name 原型方法 animal.prototype.eat function food 核心...

JS繼承的實現方式

前言 js作為物件導向的弱型別語言,繼承也是其非常強大的特性之一。那麼如何在js中實現繼承呢?讓我們拭目以待。既然要實現繼承,那麼首先我們得有乙個父類,如下 定義乙個動物類 function animal name 原型方法 animal.prototype.eat function food 核心...

JS繼承的實現方式

既然要實現繼承,那麼首先我們得有乙個父類,如下 定義乙個動物類 function animal name 原型方法 animal.prototype.eat function food 核心 將父類的例項作為子類的原型 function cat cat.prototype new animal ca...