資源描述:
《詳解javascript中基于原型prototype的繼承特性》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、我真正系統(tǒng)地接觸和學(xué)習(xí)黨的基本知識(shí)是在這次中級(jí)黨校的培訓(xùn)班上。通過學(xué)習(xí),了解了黨的發(fā)展歷程,對(duì)黨的性質(zhì)、宗旨、任務(wù)等基本知識(shí)有了進(jìn)一步的了解詳解JavaScript中基于原型prototype的繼承特性 這篇文章主要介紹了詳解JavaScript中基于原型prototype的繼承特性,JavaScript中缺少類等面向?qū)ο蟮闹匾匦?因而談到繼承也顯得十分古怪...需要的朋友可以參考下 JavaScript中的繼承比較奇葩,無法實(shí)現(xiàn)接口繼承,只能依靠原型繼承?! ≡玩湣 ≡途褪且粋€(gè)對(duì)象,通過構(gòu)造函數(shù)創(chuàng)建出來的實(shí)
2、例會(huì)有指針指向原型得到原型的屬性和方法。這樣,實(shí)例對(duì)象就帶有構(gòu)造函數(shù)的屬性方法和原型的屬性方法,然后將需要繼承的構(gòu)造函數(shù)的原型指向這個(gè)實(shí)例,即可擁有這個(gè)實(shí)例的所有屬性方法實(shí)現(xiàn)繼承?! 】聪旅嫜菔敬a: //聲明超類,通過構(gòu)造函數(shù)和原型添加有關(guān)屬性和方法 functionSuper(){ ?this.property=true; } Super.prototype.getSuperValue=function(){ ?returnthis.property; };對(duì)黨的認(rèn)識(shí)也有了進(jìn)一步的提高。才真正體會(huì)到了
3、中國(guó)共產(chǎn)黨的偉大、光榮和正確,更感到只有中國(guó)共產(chǎn)黨是全中國(guó)最廣大人民利益的忠實(shí)代表我真正系統(tǒng)地接觸和學(xué)習(xí)黨的基本知識(shí)是在這次中級(jí)黨校的培訓(xùn)班上。通過學(xué)習(xí),了解了黨的發(fā)展歷程,對(duì)黨的性質(zhì)、宗旨、任務(wù)等基本知識(shí)有了進(jìn)一步的了解 //聲明子類的構(gòu)造函數(shù) functionSubType(){ ?this.subproperty=false; } //將子類的原型指向超類的實(shí)例,得到超類的一切 SubType.prototype=newSuper(); SubType.prototype.constructor=S
4、ubType; SubType.prototype.getSubValue=function(){ ?returnthis.subproperty; }; //由子類創(chuàng)建對(duì)象,測(cè)試是否繼承超類方法和屬性 varinstance=newSubType(); console.log(instance.getSuperValue()); 所有函數(shù)的默認(rèn)原型都是Object的實(shí)例,因此默認(rèn)原型都會(huì)包含一個(gè)內(nèi)部指針,指向Object.prototype?! ∈褂胕nstanceof和isPrototypeOf可以確
5、定原型和實(shí)例的關(guān)系: instanceinstanceofObject; Object.prototype.isPrototypeOf(instance);對(duì)黨的認(rèn)識(shí)也有了進(jìn)一步的提高。才真正體會(huì)到了中國(guó)共產(chǎn)黨的偉大、光榮和正確,更感到只有中國(guó)共產(chǎn)黨是全中國(guó)最廣大人民利益的忠實(shí)代表我真正系統(tǒng)地接觸和學(xué)習(xí)黨的基本知識(shí)是在這次中級(jí)黨校的培訓(xùn)班上。通過學(xué)習(xí),了解了黨的發(fā)展歷程,對(duì)黨的性質(zhì)、宗旨、任務(wù)等基本知識(shí)有了進(jìn)一步的了解 使用原型鏈的時(shí)候,需要謹(jǐn)慎的定義方法。子類需要重寫超類型的某個(gè)方法或者擴(kuò)充,一定要放在替換原型
6、的語句后面,這樣才能生效。此外,通過原型鏈實(shí)現(xiàn)繼承時(shí),不能使用對(duì)象字面量創(chuàng)建原型方法,這樣會(huì)重寫原型鏈: ...... SubType.prototype=newSuper(); SubType.prototype={ ?.... }; 這會(huì)更換指針指向新對(duì)象,從而重寫了原型鏈。 原型鏈的繼承方法是有缺陷的,主要有兩個(gè)問題: 1,來自包含引用類型值的原型,會(huì)被所有實(shí)例共享?! ∏懊嫖恼陆榻B過包含引用類型值的原型屬性會(huì)被所有實(shí)例共享,一個(gè)實(shí)例修改,其他實(shí)例會(huì)隨之改變,因此需要在構(gòu)造函數(shù)中定義屬性。而原型鏈
7、繼承的時(shí)候,無論超類中屬性是在構(gòu)造函數(shù)還是原型中定義,全部都變成了實(shí)例對(duì)象被子類繼承,從而對(duì)子類的實(shí)例產(chǎn)生影響?! ?,創(chuàng)建子類型的實(shí)例時(shí),不能向超類型的構(gòu)造函數(shù)中傳遞參數(shù)?! ≡玩湹睦^承,直接將子類原型指向超類的實(shí)例,這時(shí)候可以向超類傳遞參數(shù)。但是當(dāng)子類創(chuàng)建實(shí)例的時(shí)候,只能向子類的構(gòu)造函數(shù)傳遞參數(shù),而不能向超類的構(gòu)造函數(shù)傳遞參數(shù)?! ∫虼藢?shí)際應(yīng)用中,很少單獨(dú)使用原型鏈。 相關(guān)的一些代碼實(shí)踐對(duì)黨的認(rèn)識(shí)也有了進(jìn)一步的提高。才真正體會(huì)到了中國(guó)共產(chǎn)黨的偉大、光榮和正確,更感到只有中國(guó)共產(chǎn)黨是全中國(guó)最廣大人民利益的忠實(shí)代表
8、我真正系統(tǒng)地接觸和學(xué)習(xí)黨的基本知識(shí)是在這次中級(jí)黨校的培訓(xùn)班上。通過學(xué)習(xí),了解了黨的發(fā)展歷程,對(duì)黨的性質(zhì)、宗旨、任務(wù)等基本知識(shí)有了進(jìn)一步的了解 鑒別一個(gè)原型屬性 functionhasPrototypeProperty(object,name){ ?returnnameinobject&&!object.hasOwnPrope