如何从另一个变量的值创建一个变量

问题描述:

我需要从另一个变量的值创建一个变量。作为一个例子,这将是类似我会怎么做这在VFP:如何从另一个变量的值创建一个变量

nameOfNextVar = "port_no_1"; 
eval(nameOfNextVar) = 7493 

那我就可以说:

alert(port_no_1); 

以及警报会给我7493 ...

这是可能的JavaScript?

TIA

丹尼斯

+0

与EVAL:重复http://stackoverflow.com/questions/592630/javascript-variable-variables – malletjo 2012-02-21 19:15:20

您可以使用JavaScript eval方法尝试类似的方式。如果可能的话,应该避免使用eval

var nameOfNextVar = "port_no_1"; 
eval(nameOfNextVar + " = " + 7493); 
alert(port_no_1)​;​ 

http://jsfiddle.net/ngTQf/

另一种方法是定义对象或当前实例的属性。您也可以使用window来定义变量或属性。

var nameOfNextVar = "port_no_1"; 
this[nameOfNextVar] = 7493; 
alert(this.port_no_1); 

window[nameOfNextVar] = 7493 
alert(window.port_no_1); 

http://jsfiddle.net/ngTQf/2/

+0

是的,作品@ShankarSangoli感谢您的快速回复。并感谢小提琴! – DKean 2012-02-21 19:56:02

+0

并感谢您的替代品。我认为我更喜欢这个选项:“window [nameOfNextVar] = ...”好建议@ShankarSangoli – DKean 2012-02-21 20:35:40

作为一个经验法则,你应该尽量避免EVAL可能的情况下。但是,如果没有其他方式,那么你可以这样做:

nameOfNextVar = "port_no_1"; 
eval("var " + nameOfNextVar + " = 7493"); 
alert(port_no_1); 

希望有所帮助。

+0

你摇滚......这是一个类似我们如何做到这一点的VFP,但这个评估只是评估文本。在VFP中,你可以说“打印eval(nameOfNextVar)”并取回7493.这可以在JavaScript中完成? – DKean 2012-02-21 19:26:10

+0

你可以有'eval(“print”+ nameOfNextVar);'。 – ralfe 2012-02-21 19:28:12

+0

其实,我试过了,id做了像VFP这样的eval。非常感谢,@ralfe – DKean 2012-02-21 19:28:57