JavaScript原型對象原理與應(yīng)用分析
本文實(shí)例講述了JavaScript原型對象原理與應(yīng)用。分享給大家供大家參考,具體如下:
原型對象:
每個(gè)對象都有一個(gè)參考對象,這個(gè)參考對象稱之為原型對象。原型對象有自己的屬性和方法。當(dāng)A是B的原型對象時(shí),那么B擁有A中的所有屬性和方法。
原型對象的工作原理:
使用原型對象定義一個(gè)新的對象時(shí),該對象不會立即擁有原型對象的屬性和方法,在調(diào)用的時(shí)候本對象內(nèi)部沒有的屬性和方法是才回去調(diào)用原型中的屬性和方法。(動態(tài)分配).
原型對象的引用:
在javascript中每一個(gè)函數(shù)都定義了一個(gè)prototype
屬性用于引用原型對象。
function computer(){ this.name="thinkPad 500"; this.factory="聯(lián)想"; this.price=5000; this.size=17; } /* *讀取函數(shù)中的prototype,默認(rèn)情況下為空 */ for( pro in computer.prototype){ document.write(computer.prototype,"<br>"); } //沒有繼承原型對象中屬性 var mycomputer=new computer(); for( pro in mycomputer){ document.write(pro,":",mycomputer[pro],"<br>"); } computer.prototype.interface="VAG"; //添加原型對象的屬性 for( pro in computer.prototype){ document.write(pro,":",computer.prototype[pro],"<br>"); } //繼承原型對象中屬性 var mycomputer=new computer(); for( pro in mycomputer){ document.write(pro,":",mycomputer[pro],"<br>"); }
這里使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼,可得如下運(yùn)行結(jié)果:
原型對象的繼承
繼承是通過原型對象實(shí)現(xiàn)
<script type="text/javascript"> //定義一個(gè)工人 function worker(){ this.name=""; this.address=""; } //定義一個(gè)部門經(jīng)理 function manager(_dept){ this.dept=_dept; } //定義繼承關(guān)系 manager.prototype=new worker(); //創(chuàng)建計(jì)劃部門經(jīng)理 var jh=new manager("計(jì)劃"); for(pro in jh){ document.write(pro,":",jh[pro],"<br>"); } //當(dāng)前jh有效沒有改變原型對象中的值 jh.name="計(jì)劃部門經(jīng)理"; jh.address="計(jì)劃部"; for(pro in jh){ document.write(pro,":",jh[pro],"<br>"); } //原型對象中的值沒有被修改 var rs=new manager('人事'); for(pro in rs){ document.write(pro,":",rs[pro],"<br>"); } //修改原型對象中的值,將會在繼承的對象中體現(xiàn),如果繼承類中沒有覆蓋 manager.prototype.address="成都市"; //覆蓋后address的值還是原來的計(jì)劃 for(pro in jh){ document.write(pro,":",jh[pro],"<br>"); } //沒有覆蓋address的值是成都市 for(pro in rs){ document.write(pro,":",rs[pro],"<br>"); } </script>
這里使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼,可得如下運(yùn)行結(jié)果:
通過原型對象可以為所有繼承對象添加屬性和刪除屬性,所有繼承對象都將統(tǒng)一顯示。
更多關(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é)》
希望本文所述對大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
es6中使用map簡化復(fù)雜條件判斷操作實(shí)例詳解
這篇文章主要介紹了es6中使用map簡化復(fù)雜條件判斷操作,結(jié)合實(shí)例形式詳細(xì)分析了傳統(tǒng)方法與map簡化復(fù)雜條件判斷的相關(guān)操作技巧,需要的朋友可以參考下2020-02-02使用JavaScript的ActiveXObject對象檢測應(yīng)用程序是否安裝的方法
這篇文章主要介紹了使用JavaScript的ActiveXObject對象檢測應(yīng)用程序是否安裝的方法,需要的朋友可以參考下2014-04-04JavaScript時(shí)間戳與時(shí)間日期間相互轉(zhuǎn)換
今天做項(xiàng)目遇到這樣的問題,要將獲取到的時(shí)間轉(zhuǎn)換為時(shí)間戳,通過查閱相關(guān)資料,問題順利解決,下面小編把具體實(shí)現(xiàn)代碼分享到腳本之家平臺,需要的朋友參考下2017-12-12javascript下漢字和Unicode編碼互轉(zhuǎn)代碼
這個(gè)是就是把漢字和Unicode編碼互轉(zhuǎn)的javascript代碼,也是從網(wǎng)上找到了,也許有人用得著??!2010-10-10Javascript圖片上傳前的本地預(yù)覽實(shí)例
圖片的上傳預(yù)覽功能主要用于圖片上傳前的一個(gè)效果的預(yù)覽,這篇文章主要介紹了Javascript圖片上傳前的本地預(yù)覽實(shí)例,需要的朋友可以參考下2014-06-06在Web關(guān)閉頁面時(shí)發(fā)送Ajax請求的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于如何在Web關(guān)閉頁面時(shí)發(fā)送Ajax請求的實(shí)現(xiàn)方法,文中通過示例代碼以及圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03