Symbol存在的意义就是为了避免对象的属性名冲突,下面是几种对象中的写法:
let mySymbol = Symbol();
// 第一种写法
let a = {};
a[mySymbol] = 'Hello!';
// 第二种写法
let a = {
[mySymbol]: 'Hello!'
};
// 第三种写法
let a = {};
Object.defineProperty(a, mySymbol, { value: 'Hello!' });
//对象,属性,属性值
// 以上写法都得到同样结果
a[mySymbol] // "Hello!"
当然,这里的独一无二可不是在一个对象或作用域内定义两个同名的变量