首頁技術(shù)文章正文

ES6 symbol數(shù)據(jù)類型

更新時(shí)間:2018-10-19 來源:黑馬程序員技術(shù)社區(qū) 瀏覽量:

Symbol 值通過Symbol函數(shù)生成。這就是說,對(duì)象的屬性名現(xiàn)在可以有兩種類型,一種是原來就有的字符串,另一種就是新增的 Symbol 類型。凡是屬性名屬于 Symbol 類型,就都是獨(dú)一無二的,可以保證不會(huì)與其他屬性名產(chǎn)生沖突。我們知道當(dāng)我們聲明相同相同的屬性名的時(shí)候后面的會(huì)覆蓋點(diǎn)前面聲明的,如下:

const classRoom={

lili:{grade:60,gender:'female'},

marray:{grade:80,gender:'female'}

marray:{grade:90,gender:'female'}

}

console.log(classRoom);



可以看出后面的屬性覆蓋了前面的同名屬性。

使用Symbol函數(shù):

const classRoom={

[Symbol('lili')]:{grade:60,gender:'female'},

[Symbol('marray')]:{grade:80,gender:'female'}

[Symbol('marray')]:{grade:90,gender:'female'}

}

console.log(classRoom);

運(yùn)行結(jié)果:



但是不能使用for in 遍歷

for (let key in classRoom) {

console.log(key);//什么都沒有打印出來

}



那么如何獲取對(duì)象的屬性呢,可以使用Object.getOwnPropertySymbols (classRoom)



要獲取到屬性的值可以用map方法

const pro =Object.getOwnPropertySymbols (classRoom);

pro.map(syms=>{

console.log(classRoom[syms]);

});

--------------------- 

作者:weixin_42554311 
來源:CSDN 
原文:https://blog.csdn.net/weixin_425 ... 566?utm_source=copy 
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接!

本文版權(quán)歸黑馬程序員前端與移動(dòng)開發(fā)培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!

作者:前端與移動(dòng)開發(fā)培訓(xùn)學(xué)院
首發(fā):http://java.itcast.cn/?skc

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!