我可以像这样在javascript对象属性名称的末尾使用破折号吗?我在任何文档中都找不到这是无效的,但在这种情况下尝试访问值 myProp- 时我得到了一些奇怪的结果。
var myObject = {"myProp-":"myValue"};
我只能像这样 myObject["myProp-"] 访问这个值,我想像这样访问
myObject.myProp-
但我得到了“ SyntaxError: Unexpected token }”
我可以像这样在javascript对象属性名称的末尾使用破折号吗?我在任何文档中都找不到这是无效的,但在这种情况下尝试访问值 myProp- 时我得到了一些奇怪的结果。
var myObject = {"myProp-":"myValue"};
我只能像这样 myObject["myProp-"] 访问这个值,我想像这样访问
myObject.myProp-
但我得到了“ SyntaxError: Unexpected token }”
您必须使用括号表示法而不是点表示法:
myObject["myProp-"]
var myObject = {"myProp-":"myValue", "foo": "bar" };
myObject.foo;
myObject["foo"]; // these are equivalent
myObject.myProp-; // syntax error
myObject["myProp-"]; // this is fine
var key = "myProp-";
myObject[key]; // this works as well (dynamic index)
myObject.key; // undefined
括号表示法与点表示法是等价的。