對象即是無序?qū)傩缘募狭范裕鋵傩钥梢园局荡岛Γ瑢ο蠛秃瘮?shù)螟凭。
一它呀、理解對象
創(chuàng)建自定義對象通常有兩種方法,第一種就是創(chuàng)建一個Object的實例下隧,然后再為其添加屬性和方法。第二種方法即對象字面量法何乎,一般推薦使用這種方法創(chuàng)建對象土辩。
//第一種
var obj = new Object();
obj.name='name';
obj.sayName=function(){};
//第二種
var obj = {
name : 'name';
sayName:functoin(){};
}
1、屬性類型
JavaScript中定義了兩種不同的屬性:數(shù)據(jù)屬性和訪問器屬性拷淘。數(shù)據(jù)屬性一般用于存儲數(shù)據(jù)數(shù)值,而訪問器屬性一般進行get/set操作贬堵,不能直接存儲數(shù)據(jù)數(shù)值结洼。
數(shù)據(jù)屬性
var obj={
name:'minRed'//數(shù)據(jù)屬性,此時的[[Value]]值是'minRed'
}
Object.defineProperty(obj,'name',{
configurable:false,
enumerable:false,
writable:false,
value:'holle'
})
數(shù)據(jù)屬性特性:[[Configurable]]引几、[[Enumerable]]挽铁、[[Writable]]、[[Value]](JavaScript不能直接訪問他們叽掘,用[[]]來表示他們是內(nèi)部值)。
configurable:true/false盖腕,是否可以通過delete刪除屬性浓镜,能否修改屬性的特性,能否把屬性修改為訪問器屬性膛薛,默認true;
enumerable:true/false雅任,是否可以通過for in循環(huán)枚舉,默認true沪么;
writable:true/false,是否可以修改屬性的值禽车,默認true;
value:undefined猪腕,設置屬性的值钦勘,默認undefined。
要修改屬性的特性可以用Object.defineProperty()彻采,三個參數(shù)屬性所在的對象、屬性名岭粤、描述符特笋,描述符必須是四個特性中的一個或多個。
訪問器屬性