您好,登錄后才能下訂單哦!
本文實例講述了JavaScript原型對象原理與應用。分享給大家供大家參考,具體如下:
原型對象:
每個對象都有一個參考對象,這個參考對象稱之為原型對象。原型對象有自己的屬性和方法。當A是B的原型對象時,那么B擁有A中的所有屬性和方法。
原型對象的工作原理:
使用原型對象定義一個新的對象時,該對象不會立即擁有原型對象的屬性和方法,在調用的時候本對象內部沒有的屬性和方法是才回去調用原型中的屬性和方法。(動態分配).
原型對象的引用:
在javascript中每一個函數都定義了一個prototype
屬性用于引用原型對象。
function computer(){ this.name="thinkPad 500"; this.factory="聯想"; this.price=5000; this.size=17; } /* *讀取函數中的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測試上述代碼,可得如下運行結果:
原型對象的繼承
繼承是通過原型對象實現
<script type="text/javascript"> //定義一個工人 function worker(){ this.name=""; this.address=""; } //定義一個部門經理 function manager(_dept){ this.dept=_dept; } //定義繼承關系 manager.prototype=new worker(); //創建計劃部門經理 var jh=new manager("計劃"); for(pro in jh){ document.write(pro,":",jh[pro],"<br>"); } //當前jh有效沒有改變原型對象中的值 jh.name="計劃部門經理"; 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>"); } //修改原型對象中的值,將會在繼承的對象中體現,如果繼承類中沒有覆蓋 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測試上述代碼,可得如下運行結果:
通過原型對象可以為所有繼承對象添加屬性和刪除屬性,所有繼承對象都將統一顯示。
更多關于JavaScript相關內容還可查看本站專題:《javascript面向對象入門教程》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》
希望本文所述對大家JavaScript程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。