2011-09-15 41 views
0
var Items = { 
    FormVariables: function() 
    { 
     if (this.array === 'undefined') 
     { 
      this.array = []; 
     } 
     return this.array; 
    } 
}; 

這是我對它的嘗試,並且我得到了一個未定義的錯誤。我可以在項目範圍內添加變量,例如我正在嘗試。如果是這樣,語法是什麼樣子?如何使用以下語法將數組添加爲屬性?

我只問是否可以使用var variableName = {}語法來完成。

編輯:

訪問它

var formVars = new Array(); 
    formVars.push('['); 
    for (var item in gd["FormVariables"]) 
    { 
     formVars.push('"' + item + '":"' + gd["FormVariables"][item] + '"'); 
    } 
    formVars.push(']'); 

這裏真正的目標是把所有這些項目,並將其轉換爲鍵/值對的JSON陣列

+0

什麼錯誤信息狀態?我試圖運行你的代碼,它工作正常 – Dmitry

回答

1

是的,你可以使用[][]new Array的快捷方式,就像{}用於new Object

this.array = []; 

順便說一句,有沒有「編譯器錯誤」,因爲JavaScript是不是編譯語言,但一種解釋之一。

此外,您的檢查沒有多大意義。你可能想要:

if (typeof this.array === 'undefined') 

因爲typeof返回一個字符串。檢查字符串'undefined'與檢查「真實」undefined不同。對於字符串,它必須明確地設置爲這些字符,這幾乎從來就不是這種情況。

+0

我最初試過這個。我收到的解釋錯誤是因爲我不明白如何使用此語法訪問數組。也許你可以在更簡單的方法上闡明一下,我會發布如何看起來這一切 –

+0

@Matthew考克斯:它似乎已經工作了;你能告訴我我錯過了什麼嗎? http://jsfiddle.net/pimvdb/3MLzH/ – pimvdb

+0

我想包括密鑰,以及代碼丟失。在這一點上,看起來你是正確的,我現在發佈的更新版本的作品。 –

相關問題