2013-08-29 45 views
0

一样,我有这样的条件:是否可以划分JavaScript变量?

var a="avar", b=3; 
var a+b="some value"; 
// expecting to make, avar3="some value"; 

是否有可能以某种方式? 或者其他方式?

+1

你试过吗?你发现了什么? – xbonez

+0

我不这么认为,你可以做到这一点 –

+0

它什么也没有显示 –

回答

5

你可以这样做:

var a="avar", b=3; 
window[a+b]="some value"; 

这将声明一个全局变量avar3与价值"some value"

+2

重要的是要注意,在这里,'window'指的是全局对象。在浏览器中,它是'window',但是它可能不一定会传递给其他JavaScript应用程序(例如Node.js)。 –

+0

正是我想要的:)谢谢 –

0

可以使用对象的属性这样的事情

var obj = { a: 'avar', b:'3'}; 
obj[obj.a+obj.b]='some value'; 
console.log(obj.avar3); //the output is 'some value' 

http://jsfiddle.net/fGaFJ/

1

否不这样工作。

我不知道如果这个,如果你正在尝试做的,但什么:

变种C = A + B; c =“某个值”;

2

此:

function ns() { return this; } 

var a="avar", b=3; 
ns()[a+b] = "some value"; 

alert(avar3); 

将创建一个变量,在当前的命名空间名称 “avar3”。