全國(guó)咨詢(xún)/投訴熱線:400-618-4000

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

ES6 symbol數(shù)據(jù)類(lèi)型

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

Symbol 值通過(guò)Symbol函數(shù)生成。這就是說(shuō),對(duì)象的屬性名現(xiàn)在可以有兩種類(lèi)型,一種是原來(lái)就有的字符串,另一種就是新增的 Symbol 類(lèi)型。凡是屬性名屬于 Symbol 類(lèi)型,就都是獨(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

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