新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Javascript組合繼承方法代碼實(shí)例解析-創(chuàng)新互聯(lián)


組合繼承
組合繼承,指將原型鏈和借用構(gòu)造函數(shù)的技術(shù)組合到一塊,從而發(fā)揮二者之長的一種繼承模式。其背后思路使用用原型鏈實(shí)現(xiàn)對原型屬性和方法的繼承,而通過構(gòu)造函數(shù)來實(shí)現(xiàn)對實(shí)例屬性的繼承。這樣,即通過在原型上定義方法實(shí)現(xiàn)了函數(shù)復(fù)用,又能夠保證每個(gè)實(shí)例都有它自己的屬性。
下面來看一個(gè)例子
function SuperType(name) {
this.name = name;
this.color = ['red', 'blue', 'green'];
};
//
SuperType.prototype.sayName = function() {
console.log(this.name);
};
//
function SubType(name, age) {
//繼承屬性
SuperType.call(this, name); // 第二次調(diào)用SuperType
//
this.age = age;
};
//繼承方法
SubType.prototype = new SuperType(); // 第一次調(diào)用SuperType
console.log(SubType.prototype.constructor); //輸出SuperType函數(shù)的源碼,即此時(shí)SubType.prototype.constructor指向SuperType函數(shù)
SubType.prototype.constructor = SubType; //將SubType.prototype.constructor指針指回SubType函數(shù)
SubType.prototype.sayAge = function() {
console.log(this.age);
};
//
var instance1 = new SubType('Jake', 20)
instance1.color.push('black');
console.log(instance1.color); //'red,blue,green,black'
instance1.sayName(); //'Jake'
instance1.sayAge(); //20
//
var instance2 = new SubType('Greg', 21);
console.log(instance2.color); //'red,blue,green'
instance2.sayName(); //'Greg';
instance2.sayAge(); //21另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
網(wǎng)頁名稱:Javascript組合繼承方法代碼實(shí)例解析-創(chuàng)新互聯(lián)
轉(zhuǎn)載來源:http://www.dlmjj.cn/article/dshjjj.html


咨詢
建站咨詢
