用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>