Dash on the end of javascript object property [dup

2019-09-19 19:06发布

问题:

This question already has an answer here:

  • Unable to access JSON property with “-” dash 3 answers

can i use dash on the end of javascript object property name like this. I could not find in any documentation that this is not valid but i got some strange results when trying to access value myProp- in this case.

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

i can only access to this value like this myObject["myProp-"] and i would like to access like

myObject.myProp-

but i got " SyntaxError: Unexpected token } "

回答1:

You'll have to use bracket notation instead of dot notation:

myObject["myProp-"]


回答2:

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

Bracket notation are dot notation are equivalent.