2011-03-18 76 views
2

我剛剛在JavaScript中創建自定義對象,因此它可能很簡單。Javascript自定義對象 - IE中的預期標識符

我有這些對象:

 function jsonObj(_id,_title,_class,_icon) 
     { 
      this.attr = new jsonAttrObj(_id,_title,_class); 
      this.data = new jsonDataObj(_title,_icon); 
      this.children = new Array(); 
     }; 

     function jsonAttrObj(_id, _title, _class) 
     { 
      this.id = _id; 
      this.title = _title; 
      this.class = _class; 
     }; 

     function jsonDataObj(_title, _icon) 
     { 
      this.title = _title; 
      this.icon = _icon; 
     }; 

我把它用var jsonObject = new jsonObj(id,title,class,icon);全部都是字符串瓦爾。

它們可以在Chrome和Firefox中正常工作,但不能在IE(8)中正常工作。 IE有錯誤 - 預期標識符。

回答

5

您不能將保留關鍵字'class'用作任何變量或屬性名稱。這裏有趣的東西 - 這是少數IE瀏覽器正確的地方之一,其餘的都不是。

+0

Doh!我知道這很簡單:\謝謝! – Bob 2011-03-18 11:08:36

0

我認爲這是你的「對象」的定義,或者你這是造成問題的類關鍵字的使用順序..

+0

定義順序不是問題。鑑於構造函數的使用發生在哪裏,以及JavaScript的提升機制,它按原樣排列。 – JAAulde 2011-03-18 11:05:33

0

「級」是保留關鍵字,如@JAAulde指出。您仍然可以使用「階級」作爲一個js屬性名稱,不過,如果你放在引號:

this."class" = _class;

這是重要的,因爲一些庫,如Bootbox需要你傳遞一個選項對象包括'類'財產。像上面的代碼行一樣在引號中轉義類屬性名稱將使其在IE以及其他瀏覽器中工作。