js中的繼承

2021-10-08 12:18:32 字數 2027 閱讀 6344

什麼是繼承?

通過某種方式,讓乙個物件可以訪問到另乙個物件中的屬性和方法叫做繼承

或者說子類去繼承父類的公有屬性和私有屬性

為什麼要使用繼承?

**或功能可以重複使用,節省記憶體空間,簡化**。

讓子類的原型指向父類的物件child.prototype = new parent;

**如下:

function

parent()

parent.prototype.

getx

=function()

function

child()

child.prototype =

newparent

;// 讓子類的原型指向父類物件

child.prototype.

gety

=function()

var c1 =

newchild()

; console.

log(c1.x)

;// 100 x是繼承父的x

console.

log(c1.

getx()

);// 100 getx是繼承父的getx

特點:即繼承了父類的私有屬性也繼承了父類的公有屬性

parent.call(this);

**如下:

function

parent()

parent.prototype.

getx

=function()

function

child()

var c1 =

newchild()

; console.

log(c1.x)

;// 100

特點:只能繼承父類的私有屬性

1.parent.call(this); // 繼承父的私有屬性

2.child.prototype = object.create(parent.prototype); 子類繼承父類的公有屬性

**如下:

function

parent()

parent.prototype.

getx

=function()

function

child()

// 為了不影響父類的原型物件 copy乙份賦值給了child.prototype

child.prototype = object.

create

(parent.prototype)

;// 最好手動的修改乙個child原型物件上constructor指向

child.prototype.constructor = child;

// 手動修改constructor的指向,保證類的完整性

var c =

newchild()

; console.

log(c.x)

; console.

log(c.

getx()

)

1, super(); 類似於之前的call繼承 繼承父類的私有屬性

2,extends 類似於原型物件 繼承公有屬性

兩個需要一起寫

class

parent

getx()

}class

child

extends

parent

gety()

}var child =

newchild()

; console.

log(child.x)

;// 100

console.

log(child.

getx()

);// 100

js中的繼承

繼承有兩種方式 介面繼承和實現繼承。介面繼承只繼承方法簽名,而實現繼承則繼承實際的方法。由於函式沒有簽名,在ecmascript中無法實現介面繼承。ecmascript只支援實現繼承,而且實現繼承主要依靠原型鏈來實現。下面介紹幾種js的繼承 原型鏈繼承實現的本質是重寫原型物件,代之以乙個新型別的例項...

JS中的繼承

定義乙個動物類 實現下面的繼承 function animal name animal.prototype.eat function food 1 原型鏈繼承 核心 將父類的例項作為子類的原型 function cat cat.prototype new animal cat.prototype.n...

JS中的繼承

對於乙個從事前端開發的工作者,如果對js中的原型 原型鏈 繼承等這些了解不透徹,說明你還是個初學者哦!下面我們來談談繼承這些事吧 建構函式中有乙個 prototype的指標,指向其原型物件,原型物件中有乙個constructor指標指向建構函式,例項中有乙個 prototype 指標指向原型物件。那...