2013-02-16 123 views
0

我在JavaScript代碼中需要動態地更新全局變量以根據這些變量的值採取特定操作。在JavaScript中爲動態全局變量創建&賦值

如:

this.decEnabled + this.properties.itemIndex = false; 

這裏,「this.properties.itemIndex」是整數,幫助項目& this.decEnabled區分是一個全局變量我試圖創造。但是我得到一個錯誤: 未捕獲的異常:ReferenceError:無法分配給'this.incEnabled + this.properties.itemIndex'。

我想我正在嘗試做一些我不應該做的事情。我想知道什麼是錯的。 我試圖分配一個字符串值,因爲上面的變量是一個字符串。還是一樣的錯誤。 請建議。

感謝,
斯納

+0

你想做什麼?據我所知,你一次只能給一個變量賦值;例如'x = false'會將值'false'賦值給變量'x',但'x + y = false'會產生一個錯誤/異常。 – 2013-02-16 10:33:13

回答

2

有你所寫的內容兩件事情,似乎不正確的。

  1. JavaScript Assignment Operator(=)。

    這個操作符的工作原理是這樣做的:

    a)從所述「=」符號的右側計算表達式。
    b)將結果賦給左手邊的表達式。

    你的例子中的問題是(b),左邊的表達式是 ,因爲你正在執行一個和(表達式 涉及算術運算是不可分配的)。

  2. 全局變量:this.decEnabled

    全局變量是一個變量,其範圍是全球範圍內,任何人即 可以訪問該變量。您可以通過在文檔的頂部寫定義文件在全球範圍 全局變量(或 任何功能範圍之外)以下:

    var global_var; 
    

    在你的解釋,你說你正在嘗試創建全局變量 'this.decEnabled'。但是,在任何情況下,這都不是一個全局變量,因爲 您將'decEnabled'綁定到一個範圍(在這種情況下,您指的是使用'this'運算符的當前範圍 )。

您收到的錯誤來自(1)。

如果您嘗試比較值,您正在查找的相等運算符是'=='或'==='。