js繼承 來自js高階

2021-09-05 19:52:11 字數 1411 閱讀 8151

繼承:組合繼承(原型繼承與借用建構函式):用建構函式實現對例項屬性的繼承,用原型鏈實現對原型屬性和方法的繼承

function super(name) 

super.prototype.sayname = function()

function sub(name, age)

sub.prototype = new super(); // 第一次呼叫super

sub.prototype.constructor = sub;

sub.prototype.sayage = function()

var instance1 = new sub("hello kitty", 20);

instance1.colors.push("green");

console.log("1:",instance1.colors);

instance1.sayname();

instance1.sayage();

var instance2 = new sub("lilei", 30);

console.log("2:",instance2.colors);

instance2.sayname();

instance2.sayage();

問題:父類構造函式呼叫了兩次,解決此問題,採用寄生組合式繼承

寄生組合式繼承:--最常用的繼承方式

function object(o) 

f.prototype = o;

return new f();

}function inheritprototype(sub, super)

function super(name)

super.prototype.sayname = function()

function sub(name, age)

inheritprototype(sub, super);

sub.prototype.constructor = sub;

sub.prototype.sayage = function()

var instance1 = new sub("hello kitty", 20);

instance1.colors.push("green");

console.log("1:",instance1.colors);

instance1.sayname();

instance1.sayage();

var instance2 = new sub("lilei", 30);

console.log("2:",instance2.colors);

instance2.sayname();

instance2.sayage();

js高階繼承

面試常見題 在es6之前如果要繼承該如何實現?原型繼承 proto 原型的位址 如何實現原型繼承 1.更改子類的原型指向父類的乙個例項物件。語法 子類.protype new 父類 例如 student.protype new person 2.再給子類的原型設定乙個contructor指向子類 保...

JS高階 繼承

物件導向程式設計思想 根據需求,分析物件,找到物件有什麼特徵和行為,通過 的方式來實現需求,要想實現這個需求,就要建立物件 要想建立物件,就應該顯示有建構函式,然後通過建構函式來建立物件,通過物件呼叫屬性和方法來實現相應的功能及需求,即可 首先,js不是一門物件導向的語言,js是一門基於物件的語言,...

js高階 原型鏈繼承

實現繼承方式1 套路 1,定義父型別建構函式。2,給父型別的原型新增方法。3,定義子型別的建構函式。4,建立父型別的物件賦值給子型別的原型。5,將子類原型的構造屬性設定為子型別。6,給子型別原型新增方法 7,建立子型別的物件 可以呼叫父型別的方法 關鍵 子型別的原型為父型別的乙個例項物件。實際上是子...