用json封裝,用構造函數封裝,用原型函數進行封裝,原型函數最節省內存,將大部分相同的屬性或方法放在靜態區域中,創建對象時,如果對象屬性與默認的不一樣,則可以在該對象中覆蓋靜態區域中的值,不影響其他對象的屬性。
<html> <head> <title>函數的封裝</title> <script type="text/javascript"> // 用json創建對象 // 特點: 1,生成麻煩 2,生成出來的對象之間沒有什么關聯 var iphone1={'pinpai':'蘋果','color':'黑色','weight':'100g','msg':function(){alert('發短信')}}; var iphone2={'pinpai':'蘋果','color':'黑色','weight':'102g','msg':function(){alert('發短信')}}; var iphone3={'pinpai':'蘋果','color':'黑色','weight':'104g','msg':function(){alert('發短信')}}; // 用構造函數封裝對象 //特點:1,創建過程比較簡單,2,浪費內存 function shouji(zhongliang){ this.pinpai='蘋果'; this.color='黑色'; this.weight=zhongliang; this.msg=function(){alert('發短信')} } var iphone1=new shouji('100g'); var iphone2=new shouji('103g'); var iphone3=new shouji('104g'); //用原型方式封裝對象 //省內存 function shouji(zhongliang){ this.weight=zhongliang; } shouji.prototype.pinpai='蘋果';//將pinpai,color屬性添加到靜態區域中,任何對象都可以共享,如果個別對象屬性不同,則可以把個別對象的屬性改一下,不影響其他對象的屬性 shouji.prototype.color='黑色'; var iphone1=new shouji('100g'); var iphone2=new shouji('103g'); var iphone3=new shouji('104g'); </script> </head> <body> </body> </html>