0

我可以像这样在javascript对象属性名称的末尾使用破折号吗?我在任何文档中都找不到这是无效的,但在这种情况下尝试访问值 myProp- 时我得到了一些奇怪的结果。

var myObject = {"myProp-":"myValue"};

我只能像这样 myObject["myProp-"] 访问这个值,我想像这样访问

myObject.myProp-

但我得到了“ SyntaxError: Unexpected token }”

4

2 回答 2

5

您必须使用括号表示法而不是点表示法:

myObject["myProp-"]
于 2013-04-04T15:21:07.387 回答
1
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

括号表示法与点表示法是等价的。

于 2013-04-04T15:21:18.137 回答