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