什麼是繼承?為什麼要使用繼承?通過某種方式,讓乙個物件可以訪問到另乙個物件中的屬性和方法叫做繼承
或者說子類去繼承父類的公有屬性和私有屬性
**或功能可以重複使用,節省記憶體空間,簡化**。
讓子類的原型指向父類的物件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 指標指向原型物件。那...