2010-11-22 107 views
0

這可能嗎?Javascript:這可能嗎?

var [a+b] = something; 

一個:由我定義。例如:「object」

b:是一個變量。例如:「2」

+0

你想做什麼?添加一個b? – 2010-11-22 23:53:30

+0

是的,我想合併一個b – Adam 2010-11-22 23:54:22

+0

也許他試圖命名一個變量與a和b的連接。 – Savageman 2010-11-22 23:54:53

回答

2

不知道你想達到什麼。您不能簡單地通過將括號中的字符串放在一起來創建變量,但可以使用括號將名稱/值對添加到對象。舉例來說,如果你想添加這個值對象myNewObj,你可以做這樣的事情:

var myNewObj = {}; 
myNewObj[ a + b ] = something; 
2

我不確定當地人,但是對於全局變量,您可以使用window[a+b]來訪問變量。

2

擊落我,如果我錯了這裏,但它看起來像你試圖動態定義可變名稱,以便您可能有

var myVar1 = something; 
var myVar2 = something; 

依此類推。你不能在JavaScript或任何聲明性語言中做到這一點。你的更好的方法可能是在這個例子中使用數組。什麼是你需要的方法你問的實際驅動程序?

1

我不禁想到你在上面的代碼片段中有語法錯誤。但是,如果你的問題是在一個數組分配的東西的動態位置,那麼你就可以做到這一點

按照以下

var a = 5; 
var array = []; 

function someFunction(b){ 
    array[a+b] = 'hello' 
} 


someFunction(5); 
alert(array[10]); 
2

示例代碼。如果你想一個值設置的東西,代表ab的組合,爲什麼不這樣做:

var obj = {}; 
obj[a] = {}; 
obj[a][b] = "something"; 

不短obj[a+b] = "something"但它更可靠,因爲

a = "object" 
b = "2" 

,並

a = "objec" 
b = "t2" 

是無法區分的使用obj[a+b]

1

這裏的傢伙其餘的我真的不明白你的目的,但在這裏,你可以這樣寫:

var a ='te'; 
var b = 'st'; 
eval ('(' + a + b + ' = 3)'); 
alert (test);