小编Ste*_*rts的帖子

JavaScript符号不会阻止对象中的名称冲突

我已经开始在JavaScript中看看Symbols了,并且已经开始在我的Objects中使用它们来帮助解决名称冲突,但是在使用它时我仍然可以覆盖属性?我很难理解JavaScript中符号的含义.他们被说了很多,人们说他们很聪明,因为他们不会在对象中引起命名冲突,但我看不出怎么样?

    // Create your object
let obj = {};

// Create your Symbol
let address = Symbol("the address symbol");

// Assign your Symbol as a key to a value
obj[address] = "123 Bond street";

// Return '123 Bond street'
console.log(obj[address])


// Another dev comes along

// Assigns an address property to your object
obj[address] = "456 Regent street";

// Your address property has been overwritten?
console.log(obj[address])
Run Code Online (Sandbox Code Playgroud)

据我所知,从我的代码中我仍然可以覆盖对象的属性?那么这个符号是如何帮助的呢?

我用错了吗?

javascript symbols ecmascript-6

3
推荐指数
1
解决办法
57
查看次数

标签 统计

ecmascript-6 ×1

javascript ×1

symbols ×1