我正在尝试更好地理解ES6中的符号,我已经阅读了以下答案:
https://stackoverflow.com/a/22280202/5591717
它们现在被称为唯一符号,它们唯一的用途是避免属性之间的名称冲突。
名字冲突仅仅意味着一个名字遮蔽了另一个名字吗?或者它也意味着错误,其中某些东西不能被重新声明?
举个例子:
let color = Symbol('this is a color')
let apple = {
[color]: 'red'
}
console.log(apple[color]) //red
console.log(apple.color) //undefined
apple[color] = 'black'
console.log(apple[color]) //black
console.log(apple.color) //undefined
apple.color = 'white'
console.log(apple[color]) //black
console.log(apple.color) //white
看起来属性可以被遮蔽,即使它们是通过符号访问的。
它们还允许与符号名称同名的点符号属性与不同的值共存。这就是避免名称冲突的意思吗?
https://stackoverflow.com/questions/56658718
复制相似问题