您好,登錄后才能下訂單哦!
本文實例講述了JavaScript原型對象原理與應用。分享給大家供大家參考,具體如下:
原型對象:
每個對象都有一個參考對象,這個參考對象稱之為原型對象。原型對象有自己的屬性和方法。當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,默認情況下為空 */ 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代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼,可得如下運行結果:
原型對象的繼承
繼承是通過原型對象實現(xiàn)
<script type="text/javascript"> //定義一個工人 function worker(){ this.name=""; this.address=""; } //定義一個部門經(jīng)理 function manager(_dept){ this.dept=_dept; } //定義繼承關系 manager.prototype=new worker(); //創(chuàng)建計劃部門經(jīng)理 var jh=new manager("計劃"); for(pro in jh){ document.write(pro,":",jh[pro],"<br>"); } //當前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代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼,可得如下運行結果:
通過原型對象可以為所有繼承對象添加屬性和刪除屬性,所有繼承對象都將統(tǒng)一顯示。
更多關于JavaScript相關內(nèi)容還可查看本站專題:《javascript面向對象入門教程》、《JavaScript錯誤與調(diào)試技巧總結》、《JavaScript數(shù)據(jù)結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數(shù)學運算用法總結》
希望本文所述對大家JavaScript程序設計有所幫助。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。