javascript相關屬性記錄

let my_love = Object.create({name:'Cindy',occupation:'angel'},{age:{value:18,writable:false,enumerable:false,configurable:false}});

1.上述語句中,writable:false 表示不可再次被寫入;   enumerable:false 不可被迭代/枚舉  configurable:false 不可再次被刪除/修改/設置

從上述描述中,可知,writable:false 的效果等同於configurable:false,不允許屬性age的值再次被修改

for(let property in my_love)

此for語句只會迭代兩次,因爲age屬性被設置爲enumerable:false不可迭代,因此for語句第一次迭代是name,第二次是occupation

 

2.判斷兩個對象實例的數據是否完全相同 Object.is()

Object.is('mars’,'Mars')           //返回false

Object.is([],[])           //返回false,因爲兩個空數組佔用不同的內存地址

Object.is(['good','day'],['good','day'])  //返回false,同樣是因爲佔用不同的內存地址

Object.is(NaN,0%0)  //返回true,0%0無法被評估爲數值,返回原始常量NaN

3.合併多個對象實例的所有成員(屬性和函數),Object.assign()

4.通過大括號裏的中括號 例如[id+'_name'],可動態賦予特定對象實例的新成員的名稱

let id = 'CN24';

var one_item = {[id+'_name']:'video set',[id+'_price']:300};

//one_item爲{CN24_name:'video set',CN24_price:300}

//one_item['CN24_name'] 等同於one_item.CN24_name 等於 one_item[id+'_name']

5.對象實例的匹配

var person = {name:'Jimmy',age:20,gender:'male'};

var person2 = {name:'Erica',age:40,gender:'female'};

var{name,age,gender} = person; //將Jimmy,20,male分別賦值給name,age,gender

({name,age,gender}) = person2;   //因爲變量name,age,gender已經被聲明過,再次設置變量的值,只需要一對小括號

var {name:value01,age:value02,gender:value03} = person2; //此時name,age,gender不是變量名稱,而是屬性名稱

var {name,...others} = person2; //此語句聲明瞭name值爲Erica,others爲{age:40,gender:'female'}的對象實例

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章