大前端之路 JS繼承的六種方式

2021-08-09 14:10:05 字數 1262 閱讀 2604

// b是a的原型,a是b的建構函式

a.prototype = b

b.constructor = a

// 父類

function super()

super.prototype.getproperty = function()

// 子類

function sub()

1)優點

2)缺點利用原型鏈來實現繼承,超類的乙個例項作為子類的原型

// 子類

function sub()

sub.prototype = new super()

// 注意這裡new super()生成的超類物件並沒有constructor屬性,故需新增上

sub.prototype.constructor = sub

1)優點

2)缺點利用構造繼承和原型鏈組合

// 子類

function sub()

sub.prototype = new super()

// 注意這裡new super()生成的超類物件並沒有constructor屬性,故需新增上

sub.prototype.constructor = sub

1)優點

2)缺點採用原型式繼承並不需要定義乙個類,傳入引數obj,生成乙個繼承obj物件的物件

function objectcreate(obj)

f.prototype = obj

return new f()

}

1)優點:

2)缺點:建立乙個僅僅用於封裝繼承過程的函式,然後在內部以某種方式增強物件,最後返回物件

function objectcreate(obj)

f.prototype = obj

return new f()

}function createsubobj(superinstance)

1)優點:

2)缺點:結合寄生式繼承和組合式繼承,完美實現不帶兩份超類屬性的繼承方式

function inheritprototype(super,sub)

function sub()

inheritprototype(super,sub)

1)優點:

2)缺點:

js實現繼承的六種方式

原型鏈利用原型讓乙個引用型別繼承另外乙個引用型別的屬性和方法。建構函式,原型,例項之間的關係 每個建構函式都有乙個原型物件,原型物件包含乙個指向建構函式的指標,而例項都包含乙個指向原型物件的內部指標。原型鏈實現繼承例子 function supertype supertype.prototype.g...

js 實現繼承的六種方式

原型鏈 利用原型讓乙個引用型別繼承另外乙個引用型別的屬性和方法。建構函式,原型,例項之間的關係 每個建構函式都有乙個原型物件,原型物件包含乙個指向建構函式的指標,而例項都包含乙個指向原型物件的內部指標。原型鏈實現繼承例子 function supertype supertype.prototype....

js實現繼承的六種方式

原型鏈利用原型讓乙個引用型別繼承另外乙個引用型別的屬性和方法。建構函式,原型,例項之間的關係 每個建構函式都有乙個原型物件,原型物件包含乙個指向建構函式的指標,而例項都包含乙個指向原型物件的內部指標。原型鏈實現繼承例子 function supertype supertype.prototype.g...