js中的对象封装

用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>
原文地址:https://www.cnblogs.com/lzzhuany/p/4554925.html