繼承:組合繼承(原型繼承與借用建構函式):用建構函式實現對例項屬性的繼承,用原型鏈實現對原型屬性和方法的繼承
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,建立子型別的物件 可以呼叫父型別的方法 關鍵 子型別的原型為父型別的乙個例項物件。實際上是子...