在我到目前为止使用ES6中的符号看到的示例中,您必须使用括号表示法访问对象文字中的符号属性:
let mySymbol = Symbol("mySymbol");
let someObject = {
[mySymbol]: "someValue"
};
console.log(someObject[mySymbol]); // "someValue"
有没有办法使用点表示法定义和访问符号属性?
答案 0 :(得分:4)
没有。必须使用括号表示法访问符号。
点符号仅用于遵循某些规则模式的string
个键,主要是作为有效的标识符。
符号不是字符串,它们完全不是其他东西。
简短的理性:符号的设计目标之一是它们不能与属性名称冲突,这使得它们可以安全使用。
所以,如果你有这样的对象
var = {
prop1: "Value"
};
你创建了一个名为prop1
的符号,你怎么能区分它们,并使用对象表示法以不同的方式访问它们?
答案 1 :(得分:3)
没有。点表示法保留用于解析属性名称(字符串)的标识符。由于向后兼容的原因,这不会发生变化。