假设我有一个对象
obj = {
a : 1
}
我可以访问属性
a
通过obj["a"]
但我也可以通过 obj[["a"]]
访问它.这怎么可能?
最佳答案
对象键总是字符串(或者,很少是符号)。当你这样做
obj[<expression>]
口译员将尝试转
expression
进入一个有效的 key ,如果它还不是一个。在这种情况下,转动 ["a"]
转换成字符串会导致 "a"
, 所以两个 obj["a"]
和 obj[["a"]]
工作。(当一个数组被隐式转换为一个基元时,就像这里一样,它得到
.join
由逗号编辑,而 ["a"].join(',') === "a"
)
关于javascript - 为什么 JS 允许以数组为键的属性访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58890568/