j pimmel
j pimmel

Reputation: 11637

Javascript reserved words?

I have some JS code which generates the following object,

return {
    "type": "some thing",
    "width": 2,
    "colour": "#AA12BB",
    "values": [2,3,4]
}

The creation of this isn't a problem.

In writing the test for the method that returns this am having a problem accessing the width/type attributes: the following assertions fail (it leads to a execution/syntax error, which go away when i comment them).

assertEquals('some thing', jsonObj.type);
assertEquals(2, jsonObj.width);

while

assertEquals('#AA12BB', jsonObj.colour);

passes

Since I cannot change the key names for what I am doing, is there any way to access these values?

Upvotes: 5

Views: 2188

Answers (3)

bobince
bobince

Reputation: 536349

Your example works fine for me. ‘width’ and ‘type’ are not reserved words in JavaScript (although ‘typeof’ is).

Upvotes: 3

johnny
johnny

Reputation: 14092

dot notation does not work with reserved words, such as "type". In that case you have to use array notation.

Mozilla's list of Java Script Reserved words.

Upvotes: 0

Andrew Hare
Andrew Hare

Reputation: 351476

Try this:

assertEquals('some thing', jsonObj["type"]);
assertEquals(2, jsonObj["width"]);

Upvotes: 3

Related Questions