首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >什么是名称冲突? ES6符号如何避免特性之间的名称冲突?

什么是名称冲突? ES6符号如何避免特性之间的名称冲突?
EN

Stack Overflow用户
提问于 2019-06-19 08:46:17
回答 1查看 206关注 0票数 1

我正在尝试更好地理解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

看起来属性可以被遮蔽,即使它们是通过符号访问的。

它们还允许与符号名称同名的点符号属性与不同的值共存。这就是避免名称冲突的意思吗?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56658718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档