JavaScript原型對象原理與應(yīng)用分析
本文實例講述了JavaScript原型對象原理與應(yīng)用。分享給大家供大家參考,具體如下:
原型對象:
每個對象都有一個參考對象,這個參考對象稱之為原型對象。原型對象有自己的屬性和方法。當(dāng)A是B的原型對象時,那么B擁有A中的所有屬性和方法。
原型對象的工作原理:
使用原型對象定義一個新的對象時,該對象不會立即擁有原型對象的屬性和方法,在調(diào)用的時候本對象內(nèi)部沒有的屬性和方法是才回去調(diào)用原型中的屬性和方法。(動態(tài)分配).
原型對象的引用:
在javascript中每一個函數(shù)都定義了一個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é)果:
原型對象的繼承
繼承是通過原型對象實現(xiàn)
<script type="text/javascript"> //定義一個工人 function worker(){ this.name=""; this.address=""; } //定義一個部門經(jīng)理 function manager(_dept){ this.dept=_dept; } //定義繼承關(guān)系 manager.prototype=new worker(); //創(chuàng)建計劃部門經(jīng)理 var jh=new manager("計劃"); for(pro in jh){ document.write(pro,":",jh[pro],"<br>"); } //當(dāng)前jh有效沒有改變原型對象中的值 jh.name="計劃部門經(jīng)理"; jh.address="計劃部"; 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的值還是原來的計劃 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錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
相關(guān)文章
使用JavaScript的ActiveXObject對象檢測應(yīng)用程序是否安裝的方法
這篇文章主要介紹了使用JavaScript的ActiveXObject對象檢測應(yīng)用程序是否安裝的方法,需要的朋友可以參考下2014-04-04JavaScript時間戳與時間日期間相互轉(zhuǎn)換
今天做項目遇到這樣的問題,要將獲取到的時間轉(zhuǎn)換為時間戳,通過查閱相關(guān)資料,問題順利解決,下面小編把具體實現(xiàn)代碼分享到腳本之家平臺,需要的朋友參考下2017-12-12javascript下漢字和Unicode編碼互轉(zhuǎn)代碼
這個是就是把漢字和Unicode編碼互轉(zhuǎn)的javascript代碼,也是從網(wǎng)上找到了,也許有人用得著??!2010-10-10在Web關(guān)閉頁面時發(fā)送Ajax請求的實現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于如何在Web關(guān)閉頁面時發(fā)送Ajax請求的實現(xiàn)方法,文中通過示例代碼以及圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03