2009-12-11 36 views
2

我有一個變量數組。 我想要一個變量與前一個變量相等。 例如:JavaScript對象文字符號內部變量指針

var myVars = { 
    var1: "test", 
    var2: var1 
}; 

alert(myVars.var2); 

//輸出:VAR1沒有定義

任何想法?我確定這是某種可變範圍限制。 我想聽聽別的。 在此先感謝。

回答

7

你不能指同一object literal在表達式中不使用的功能,我會建議你使用等效的語法:

var myVars = {}; 

myVars.var1 = "test", 
myVars.var2 = myVars.var1; 
+0

完美的感謝。 我實際上採用了這種方法。 我只是希望我上面提到的方法能工作。 不要猜! – 2009-12-11 18:50:46

-1
var myVars = { 
    var1: "test", 
    var2: this.var1 
}; 

吧?

+3

'this'綁定到函數上下文中,與'myVars'實例無關 – CMS 2009-12-11 17:24:17

1

或者:

var myVar = "test"; 

var myArr = { 
    var1: myVar, 
    var2: myVar 
} 
+0

我試圖將名稱空間原因的所有變量保存在單個對象中。這在我的情況下不起作用。 – 2009-12-11 19:38:15

+0

就在這種情況下,您需要將所有必要的變量包含在對象中,如CMS所建議的。請注意,您也可以將該數組聲明爲對象: var myVars = new Object(); myVars.var1 =「test」; myVars.var2 = myVars.var1; – 2009-12-11 19:53:53

+1

什麼數組?這裏沒有使用數組。 – 2009-12-12 07:56:17