1、字面量的方法創(chuàng)建對(duì)象
使用字面量的方法是創(chuàng)建對(duì)象的基本方法
var att={
name:name,
age:age;
}
優(yōu)點(diǎn)是創(chuàng)建單個(gè) 屬性相對(duì)較少時(shí)書寫方便,便于理解。
缺點(diǎn)當(dāng)創(chuàng)建多個(gè)屬性大致相同的對(duì)象時(shí)它會(huì)比較麻煩而且不便于批量修改;
2、通過(guò)new Object 的方法;
var att=new Object;
完全等于 var att={};
3、通過(guò)工場(chǎng)的方式批量創(chuàng)建出對(duì)象;
這種方法和之前的調(diào)用函數(shù)的方法很象;
function add(name,age,sex){
var add={
name,//這里完全等同于name:name,
age:age,
eat(){}//這里是創(chuàng)建方法等同于eat:function(){}
}
return add
}
var att=add{'name','age','sex'}
這種方法創(chuàng)建建的對(duì)象相對(duì)于前面的字面的方法要強(qiáng)大一些 因?yàn)榭蓪?duì)屬性相同的對(duì)象 分別賦值批量創(chuàng)建對(duì)象。
但是這種方法創(chuàng)建的對(duì)象時(shí)每次都會(huì)調(diào)用一次函數(shù)這種方法創(chuàng)建的對(duì)象相同屬性也不會(huì)指向同以地址。每次訪問(wèn)屬性都會(huì)產(chǎn)生垃圾。
3、構(gòu)造函數(shù)的方法創(chuàng)建對(duì)象。
那么對(duì)于上面說(shuō)的工場(chǎng)方法的一些缺點(diǎn)我們有一個(gè)新的方法創(chuàng)建對(duì)象,構(gòu)造函數(shù)數(shù)的方法來(lái)創(chuàng)鍵對(duì)象 ;
function Add(){
this.name='name';
this.eat=function (){};//這里的this指代 當(dāng)調(diào)用函數(shù)試使用的變量的;
Add.prototype.play=function (){}//這里的方法 最好創(chuàng)建在函數(shù)所指向的原型中有利于回避上面方法中所提到的重復(fù)調(diào)用產(chǎn)生垃圾的問(wèn)題
}
var att=new Add()//構(gòu)造函數(shù)的方法可以說(shuō)只是 以調(diào)用的方式不同來(lái)決定的不與函數(shù)的本身相關(guān);
但是調(diào)用函數(shù)也有一些小的問(wèn)題:方法重讀取產(chǎn)生的垃圾;
為了只讀取一次那么可以使用這種方案;
function Add(){
this._init();//以_開(kāi)頭命名表示只可以在本函數(shù)中調(diào)用(并非強(qiáng)制規(guī)定)
}
Add.prototype={
_init:function (){//在這里添加的內(nèi)容最好為屬性,便于屬性的值可以獨(dú)立變更
this.name:‘name’
}
eat:function(){}
}