2009-02-11 72 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