Symbol 值通過(guò)Symbol函數(shù)生成。這就是說(shuō),對(duì)象的屬性名現(xiàn)在可以有兩種類型,一種是原來(lái)就有的字符串,另一種就是新增的 Symbol 類型。凡是屬性名屬于 Symbol 類型,就都是獨(dú)一無(wú)二的,可以保證不會(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);//什么都沒(méi)有打印出來(lái)
}
那么如何獲取對(duì)象的屬性呢,可以使用Object.getOwnPropertySymbols (classRoom)
要獲取到屬性的值可以用map方法
const pro =Object.getOwnPropertySymbols (classRoom);
pro.map(syms=>{
console.log(classRoom[syms]);
});
---------------------
作者:weixin_42554311
來(lái)源:CSDN
原文:https://blog.csdn.net/weixin_425 ... 566?utm_source=copy
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接!
本文版權(quán)歸黑馬程序員前端與移動(dòng)開(kāi)發(fā)培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:前端與移動(dòng)開(kāi)發(fā)培訓(xùn)學(xué)院
首發(fā):http://java.itcast.cn/?skc