直接访问 a[Symbol("2")] 返回 undefined,为什么咧。
在 a对象里可以看到这个属性。
const sym = Symbol("1");
const a = {
[sym]: 1,
[Symbol("2")]: 2,
};
console.log(a[sym], a[Symbol("2")]); // 1 undefined
直接访问 a[Symbol("2")] 返回 undefined,为什么咧。
在 a对象里可以看到这个属性。
const sym = Symbol("1");
const a = {
[sym]: 1,
[Symbol("2")]: 2,
};
console.log(a[sym], a[Symbol("2")]); // 1 undefined
Symbol
的参数只是作为描述
注意,Symbol
函数的参数只是表示对当前 Symbol 值的描述,因此相同参数的Symbol
函数的返回值是不相等的。
所以你对象a
里的Symbol("2")
和console
里的Symbol("2")
是绝不会相等的
10 回答11.2k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答4.9k 阅读✓ 已解决
1 回答3.3k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
每次调用 Symbol() 都会生成一个不同的 Symbol ,即使参数一样。