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