1function
person(name, age) 7}
89 person.prototype.race = function
() 12
13 let a = new person('wangwu', 99);
14console.log(a.age);
15a.run();
16 a.race();
1.靜態繼承
person.sing = function() person.sing();
2.冒充繼承(就是改變了this的指向)
優:可以向父代傳參;
缺:無法繼承原型鏈
functioncaller()
let p = new
caller();
p.run();
console.log(p.age);
3.原型鏈繼承
優:可以繼承原型鏈
缺:無法向父代傳參
functionextendfunc(){}
extendfunc.prototype =new
person();
let t = new extendfunc('lplp',147);
t.run()
t.race();
console.log(t.name);
4.混合繼承
優:互補2.3,既能向父代傳參,又能繼承原型鏈
functionfunc()
func.prototype = new
person();
let y = new
func();
y.run();
JS複習 繼承 原型鏈
繼承 介面繼承和實現繼承。介面繼承只繼承方法簽名,而實現繼承則繼承實際的方法。由於函式沒有簽名,在esmascript中無法實現介面繼承。esmascript只支援實現繼承,而且其實現繼承主要是依靠 原型鏈來實現的。原型鏈 基本思想 利用原型讓乙個引用型別繼承另乙個引用型別的屬性和方法。建構函式 原...
JS原型鏈的一些理解
關於原型鏈我的理解是乙個建構函式的原型作為另乙個建構函式的例項形成的繼承關係 在js高階程式設計中有這樣乙個圖 當我們定義乙個函式時會有乙個原型,即圖中的supertype prototype,這時原型物件中會有乙個constructor指向建構函式supertype,這便是建構函式與原型物件之間的...
關於js原型和繼承的方法複習
1.首先我們先來看幾個概念。封裝 將描述同乙個東西的屬性和方法,定義在乙個物件中。繼承 父物件中的屬性和方法,子物件可以直接使用。多型 同乙個物件,在不同情況下,呈現不同的狀態。2.如何定義建構函式?function 建構函式名 引數.接下來是利用這個建構函式建立物件 var obj new 建構函...