gpt4 book ai didi

javascript - 为什么Object中的符号类型键有一个括号

转载 作者:行者123 更新时间:2023-11-30 14:55:37 24 4
gpt4 key购买 nike

我刚开始学JS,想知道为什么Symbol周围有[]。例如:在一个对象中。

var bow = {
[Symbol('apple')] : something,
[Symbol('banana')] : something,
....
}

此外,当涉及到迭代器时:

var iterableObject = {
[Symbol.iterator] : function() {.....}
}

谁能解释一下他们周围的这些[]有什么用吗?我用谷歌搜索了一段时间,但没有找到满意的答案,提前谢谢您。

最佳答案

方括号只是对象字面量语法的一部分。

当您使用对象文字语法创建对象时,现在可以使用变量来设置对象内的键。

const string = 'whatever'
const normalObject = {
[string]: 'something else'
}

这会导致 normalObject 有一个属性,'whatever' 指向 'something else'

// normalObject
{ whatever: 'something else' }

在对象字面量语法中使用括号只是为了允许您使用变量来设置对象中的键。

将其带回到您的示例中,这只是允许您使用符号作为对象中的键。

您可能已经注意到这有点奇怪。直到最近,对象只能有 String 键。符号不是可以用作对象中键的其他东西。

var bow = {
[Symbol('banana')] : something,
[Symbol('banana')] : something,
....
}

这将导致一个对象有两个不同的Symbol(banana)指向某物

关于javascript - 为什么Object中的符号类型键有一个括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47320210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com