一、因?qū)ο髮傩悦Q造成的數(shù)據(jù)覆蓋問題。
//Symbol是繼javaScript之后推出的第七種數(shù)據(jù)類型。解決對(duì)象屬性名重復(fù)沖突和問題。
const Person = {
'Lily':{grade:60,gender:'female'},
'Nina':{grade:80,gender:'female'},
'Nina':{grade:80,gender:'female'}
}
console.log(Person)
******
二、創(chuàng)建一個(gè)Symbol。
Symbol([description])
參數(shù) description 是一個(gè)可選參數(shù),是一個(gè)字符串,可以用于調(diào)試,但不能訪問Symbol 自身。 每一個(gè) Symbol() 返回的值都是唯一的。一個(gè)Symbol 值能作為對(duì)象屬性的標(biāo)識(shí)符,這是改數(shù)據(jù)類型僅有的目的。
console.log(Symbol('car') === Symbol('train')) //fasle
console.log(Symbol() === Symbol()) //fasle
const Person = {
[Symbol('Lily')]: { grade: 60, gender: 'female' },
[Symbol('Nina')]: { grade: 80, gender: 'female' },
[Symbol('Nina')]: { grade: 80, gender: 'female' }
}
console.log(Person)
******
四、Symbol與遍歷。
console.log(Object.getOwnPropertyNames(Person))
console.log(Object.keys(Person))
for (let per in Person) {
console.log(per)
}
******
//ES6中為Symbol提供的遍歷方法
const syms = Object.getOwnPropertySymbols(Person).map(sym => Person[sym])
console.log(syms)
******
詳情:http://www.itdecent.cn/p/425148370333?utm_source=oschina-app



