2009-02-11 67 views
5

我有一些JS代码产生下面的对象,Javascript保留字?

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

这样做的创建是没有问题的。

在为返回this的方法编写测试时,我在访问width/type属性时遇到了问题:下面的断言失败(导致执行/语法错误,当我评论它们时它会消失)。

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

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

通过

既然我不能改变的关键名字我在做什么,有没有什么办法来访问这些值?

回答

3

试试这个:

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

干杯,现货! – 2009-02-11 19:12:39

0

点符号不保留字,如 “类型” 工作。在这种情况下,你必须使用数组符号。

Mozilla列表中的Java Script Reserved words

+2

类型似乎不是保留字,但是这是访问这些属性的正确方法。 – zedd45 2014-02-23 18:39:17

3

您的示例适合我。 'width'和'type'是而不是 JavaScript中的保留字(虽然'typeof'是)。

+0

奇怪..你说得对他们没有被保留的话......但无论出于什么原因FF3.0.6它失败了.. CSS?萤火虫?嗯,不知道 – 2009-02-12 02:40:00