我可以像这样在javascript对象属性名称的末尾使用破折号。我在任何文档中都找不到这是无效的,但在这种情况下尝试访问值myProp时我得到了一些奇怪的结果。
var myObject = {"myProp-":"myValue"};
我只能像myObject [“myProp-”]那样访问这个值,我想访问
myObject.myProp-
但我收到了“SyntaxError:Unexpected token}”
答案 0 :(得分:4)
您必须使用括号表示法而不是点符号:
myObject["myProp-"]
答案 1 :(得分:0)
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
括号表示法是点符号相同。