Js各種繼承方法總結

2021-06-26 14:06:01 字數 1503 閱讀 1032

//原型鏈方式

function classa()

classa.prototype.color = "red";

classa.prototype.saycolor = function ()

function classb() {}

classb.prototype = new classa();

var b = new classb();

console.log(b.saycolor());

//call方法繼承

function classa(scolor, sname)

}function classb(scolor, sname, type)

}var b = new classb("red", "color_1", "color");

console.log(b.saycolor());

console.log(b.show());

call方法,即呼叫乙個物件的乙個方法,以另乙個物件替換當前物件。

在我打的這個例子中,可以看做classa物件代替this物件在classb中執行,那麼就實現了classb對classa的繼承。

function classa(scolor, sname)

}function classc(scolor, sname, type)

}var c = new classc("blue", "color_2", "color");

console.log(c.saycolor());

console.log(b.show());

//物件冒充

function classa(scolor)

}function classb(scolor, sname)

}var b = new classb("white", "color_3");

console.log(b.saycolor());

console.log(b.show());

//混合方式

function classa(scolor)

classa.prototype.saycolor = function ()

function classb(scolor, name)

classb.prototype = new classa();

classb.prototype.show=function()

var b = new classb("black", "color_4");

console.log(b.saycolor());

console.log(b.show());

利用call和原型鏈的混合方式,應該是比較合理的方式了,物件的屬性要麼來自自身屬性,要麼來自prototype,

在混合方式中,用call方式繼承父類函式的屬性,用原型鏈方式繼承父類prototype物件的方法

JS 繼承方法總結

function person var p1 newperson var p2 newperson console.log p1.say p2.say false核心 將父類的例項作為子類的原型 function cat cat.prototype new animal cat.prototype....

JS物件導向 JS繼承方法總結

物件導向中,繼承相對是比較難的,即使看了很多文章,可能依然不明白,下面我談談我的理解。1.建構函式繼承 function p0 function children0 通過這種在子類中執行父類的構造函式呼叫,把父類建構函式的 this 指向為子類例項化物件引用,從而導致父類執行的時候父類裡面的屬性都會...

js各種繼承方式彙總

首先定義乙個父類 function animal name animal.prototype.eat function food 特點 1 子類的原型指向父類的例項 缺點 1 無法多繼承 2 無法向父類的構造傳參 3 來自原型物件的引用屬性是所有例項共享的 function cat cat.prot...