javascript的6種繼承方式

2021-08-16 09:36:30 字數 1516 閱讀 7998

//1. 原型鏈繼承

//原型鏈繼承的主要思想是利用原型讓乙個引用型別繼承另乙個引用型別的屬性和方法。

//警告:通過原型鏈繼承是,不能使用物件字面量建立原型方法,這樣會重寫原型鏈!   

function supertype()

function subtype()

subtype.prototype = new supertype();// 繼承了supertype

var instance1 = new subtype();

console.log(instance1);

// 2. 借用建構函式繼承

function wanda()

function sicong()

var sc = new sicong();

sc.money.push(666);

console.log(sc);

// 3. 組合繼承將原型鏈和借用建構函式的技術組合起來一起用,好處是既能實現函式的復用,又能保證每個例項有自己的屬性。

function supertype(name)

supertype.prototype.sayname = function() ;

function subtype(name, age)

subtype.prototype = new supertype();//繼承方法

var instance1 = new subtype('tj', 22);

instance1.sayname();

// 4 原型式繼承---這種繼承方式主要針對與不關注自定義型別和建構函式而考慮物件的情況下,思路是基於已有的物件建立新物件,例項**如下:

function object(o)

f.prototype = o;

return new f();

}var bird1 = object(animal);

// 這種繼承方式通過臨時建立乙個新的建構函式f並將其原型物件設為所需要的物件,然後返回乙個此建構函式f的例項以實現繼承

5 寄生式繼承--這種繼承方式使用了object.create(),建立乙個用於封裝繼承過程的函式,在函式內部來增強物件,其本質原理與原型式繼承類似,示例**:

function createanother(original) ;

return clone;

}var anotheranimal = createanother(animal);

anotheranimal.sayhi();

// 6 寄生組合式繼承--寄生組合式繼承是最理想的繼承正規化,通過借用建構函式來繼承屬性,通過原型鏈來繼承方法。本質上使用了寄生式繼承來繼承超型別的原型,然後將結果指定給子型別的原型。例項**如下:

// 6.寄生組合式繼承

function inheritprototype(subtype, supertype)

function fish(name)

inheritprototype(fish, animal);

// from:

javascript繼承的6種方法

1 原型鏈繼承 原型鏈繼承基本思想就是讓乙個原型物件指向另乙個型別的例項 2 借用建構函式繼承 此方法為了解決原型中包含引用型別值所帶來的問題。3 組合繼承 原型 借用構造 組合繼承是將原型鏈繼承和建構函式結合起來,從而發揮二者之長的一種模式。思路就是使用原型鏈實現對原型屬性和方法的繼承,而通過借用...

javascript的2種繼承方式詳解

js中繼承可以分為兩種 物件冒充和原型鏈方式 如下 function person name function f2e name,id var simon new f2e simon 9527 simon.say simon.showid 實質上是改變了this指標的指向 如下 function p...

JavaScript四種繼承方式

原型繼承 function person name,age person.prototype.say function function man man.prototype new person 霍頓 22 這句是重點,敲黑板 var man1 new man man1.say var man2 n...