Symbol
Symbol 是 ES6 新引入的數(shù)據(jù)類型,它是一種特殊的、不可變的數(shù)據(jù)類型,用來生成唯一的標識符。
// 場景:一個班有兩個叫做 Nina 的,可以用 Symbol 生成唯一標識,括號里面的內(nèi)容作為描述
const classRoom = {
'Lily': { grade: 60, gender: 'femal' },
[Symbol('Nina')]: { grade: 80, gender: 'femal' },
[Symbol('Nina')]: { grade: 90, gender: 'femal' },
}
console.log(classRoom);
但是需要注意的是,如果對象的屬性是 Symbol
類型的值的話,是不能遍歷的。如果想獲取對象中 Symbol
類型屬性的值,可以如下:
const syms = Object.getOwnPropertySymbols(classRoom).map(sym => classRoom[sym]);
// 在這個地方用到 classRoom[sym] 中括號的方式來獲取,是為了避免把 sym 當做一個字符串