带有点表示法的ES6符号

时间:2015-10-31 17:02:52

标签: javascript syntax ecmascript-6

在我到目前为止使用ES6中的符号看到的示例中,您必须使用括号表示法访问对象文字中的符号属性:

let mySymbol = Symbol("mySymbol");

let someObject = {
  [mySymbol]: "someValue"
};

console.log(someObject[mySymbol]); // "someValue"

有没有办法使用点表示法定义和访问符号属性?

2 个答案:

答案 0 :(得分:4)

没有。必须使用括号表示法访问符号。

点符号仅用于遵循某些规则模式的string个键,主要是作为有效的标识符。

符号不是字符串,它们完全不是其他东西。

简短的理性:符号的设计目标之一是它们不能与属性名称冲突,这使得它们可以安全使用。

所以,如果你有这样的对象

var = {
  prop1: "Value"
};

你创建了一个名为prop1的符号,你怎么能区分它们,并使用对象表示法以不同的方式访问它们?

答案 1 :(得分:3)

没有。点表示法保留用于解析属性名称(字符串)的标识符。由于向后兼容的原因,这不会发生变化。