JavaScript繼承定義與用法實(shí)踐分析
本文實(shí)例講述了JavaScript繼承定義與用法。分享給大家供大家參考,具體如下:
javascript 繼承 , 老生長(zhǎng)談的東西, 大家應(yīng)該都很熟悉了, 平時(shí)工作基本不會(huì)直接使用, 這段時(shí)間不忙, 所以補(bǔ)習(xí)了下相關(guān)基礎(chǔ)知識(shí) ,自己動(dòng)手實(shí)踐, 加深理解:
基類定義如下:
// base class function Animal(t) { if(typeof t==='string') this.type=t; else { if(t) this.type=t.toString(); else this.type='Animal' } this.speak=function(str) { if(str) console.log(this.type+' said '+str); else throw "please specify what you want to say!"; } }
1. 原型繼承 (javascript 類庫本身基于原型繼承)
String, Number , Boolean 這三大原始類型 我們可以很直接的通過prototype 檢查到他們繼承自Object.
Date, RegExp ,Array 這三應(yīng)該是間接繼承了Object, 他們的prototype屬性很特殊 :
Date.prototype =Invalid Date RegExp.prototype=/(?:)/ Array.prototype=[]
原型繼承代碼如下: (可以看到Mokey 原型鏈上的Animal和Object)
// Monkey : Animal function Monkey(name,age) { this.name=name; this.age=age; } Monkey.prototype=new Animal('Monkey'); // Example 01 var m=new Monkey('codeMonkey',10); /* Monkey: age: 10 name: "codeMonkey" __proto__: Animal speak: function (str) type: "Monkey" __proto__: Animal constructor: function Animal(t) __proto__: Object */ console.log(m.type); // Monkey console.log(m.name); // codeMonkey console.log(m.age); // 10 m.speak('hello world') // Monkey said hello world
2. 調(diào)用父類構(gòu)造函數(shù) ( 通過傳遞子類的this指針 , 將原本是父類的公開成員直接添加到了子類中,從子類原型鏈中無法看出繼承關(guān)系)
// Human:Animal function Human(id,name) { // call base class's constuctor function Animal.call(this,'Human'); this.id=id; this.name=name; } var h=new Human(1,'leon'); /* id: 1 name: "leon" speak: function (str) type: "Human" __proto__: Human constructor: function Human(id,name) __proto__: Object */ h.speak('hello world'); // Human said hello world console.log(h.type); // Human
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- JavaScript繼承與多繼承實(shí)例分析
- JavaScript實(shí)現(xiàn)多重繼承的方法分析
- 深入淺析javascript繼承體系
- JS繼承與閉包及JS實(shí)現(xiàn)繼承的三種方式
- js中繼承的幾種用法總結(jié)(apply,call,prototype)
- JavaScript是如何實(shí)現(xiàn)繼承的(六種方式)
- 深入了解javascript中的prototype與繼承
- Javascript基于對(duì)象三大特性(封裝性、繼承性、多態(tài)性)
- javascript的函數(shù)、創(chuàng)建對(duì)象、封裝、屬性和方法、繼承
- Javascript 繼承機(jī)制的實(shí)現(xiàn)
- JavaScript的原型繼承詳解
相關(guān)文章
JS利用cookie記憶當(dāng)前位置的防刷新導(dǎo)航效果
這篇文章主要介紹了JS利用cookie記憶當(dāng)前位置的防刷新導(dǎo)航效果,涉及JavaScript操作cookie及導(dǎo)航樣式布局的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10通過js簡(jiǎn)單實(shí)現(xiàn)將一個(gè)文本內(nèi)容轉(zhuǎn)譯成加密文本
將文本內(nèi)容轉(zhuǎn)譯成加密文本,在某些情況下還是比較實(shí)用的,下面通過js簡(jiǎn)單實(shí)現(xiàn)下,感興趣的朋友不要錯(cuò)過2013-10-10javascript動(dòng)態(tài)修改Li節(jié)點(diǎn)值的方法
這篇文章主要介紹了javascript動(dòng)態(tài)修改Li節(jié)點(diǎn)值的方法,涉及針對(duì)li節(jié)點(diǎn)的操作技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-01-01一文詳解JavaScript中的事件循環(huán)(event?loop)機(jī)制
JavaScript中的事件循環(huán)(Event?Loop)是一種重要的機(jī)制,用于管理異步代碼的執(zhí)行,它確保?JavaScript?單線程環(huán)境中的任務(wù)按照正確的順序執(zhí)行,同時(shí)允許異步操作如定時(shí)器、網(wǎng)絡(luò)請(qǐng)求和事件處理,本將給大家詳細(xì)的介紹一下JavaScript事件循環(huán)機(jī)制,感興趣的朋友可以參考下2023-12-12JavaScript性能優(yōu)化之小知識(shí)總結(jié)
JavaScript的性能問題不容小覷,這就需要我們開發(fā)人員在編寫JavaScript程序時(shí)多注意一些細(xì)節(jié),本文給大家介紹javascript性能優(yōu)化之小知識(shí)總結(jié),需要的朋友可以參考下2015-11-11JS中實(shí)現(xiàn)函數(shù)return多個(gè)返回值的實(shí)例
下面小編就為大家?guī)硪黄狫S中實(shí)現(xiàn)函數(shù)return多個(gè)返回值的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02