如何通过连接创建另一个变量来访问javascript变量值?
请看一下下面的代码-如何通过连接创建另一个变量来访问javascript变量值?,javascript,Javascript,请看一下下面的代码- var abc_text = "Hello"; var def_text = "world"; function testMe(elem) { var xyz = elem+"_text"; alert(xyz); } testMe("abc"); testMe("def"); 我尝试将前缀传递给函数,并尝试通过连接打印一些预定义的值。但上面的示例只打印“abc_文本”和“def_文本”。。而不是“你好”和“世界”。我怎样才能让它工作 多谢各位 编辑
var abc_text = "Hello";
var def_text = "world";
function testMe(elem) {
var xyz = elem+"_text";
alert(xyz);
}
testMe("abc");
testMe("def");
我尝试将前缀传递给函数,并尝试通过连接打印一些预定义的值。但上面的示例只打印“abc_文本”和“def_文本”。。而不是“你好”和“世界”。我怎样才能让它工作
多谢各位
编辑
我正在使用Jquery。在本例中使用
var xyz = window[elem+"_text"];
在这种情况下,请使用
var xyz = window[elem+"_text"];
您可以计算xyz,但最好将abc_文本和def_文本存储在关联数组或对象中;
var text = {"abc" : "Hello", "def" : "Word"};
var text={“abc”:“Hello”,“def”:“Word”};
您可以计算xyz,但最好将abc_文本和def_文本存储在关联数组或对象中;
var text = {"abc" : "Hello", "def" : "Word"};
var text={“abc”:“Hello”,“def”:“Word”};
这里有一篇关于JavaScript中动态变量的非常好的文章:
这里有一篇关于JavaScript中动态变量的非常好的文章:
这(或交替评估)是正确的。但是wbdvlpr,请注意,很少需要在编写良好的代码中执行此操作。eval是邪恶的。eval只能在最罕见的情况下使用。从其他来源注入代码太容易了。@Jonathan:嗯。。。不,只有当您接受来自不可信来源的输入,然后盲目地将其传递给eval()时,这才很容易。但是它很慢,在这种情况下是不必要的;这当然足够了@乔纳森·芬格兰——是的,它起作用了。但关联数组对我来说似乎更好。谢谢。@wbdvlpr,哦,我同意。所问的问题是通过window[]方法解决的,但联合数组方法在总体上是更好的实践方法。这(或交替使用eval)是正确的。但是wbdvlpr,请注意,很少需要在编写良好的代码中执行此操作。eval是邪恶的。eval只能在最罕见的情况下使用。从其他来源注入代码太容易了。@Jonathan:嗯。。。不,只有当您接受来自不可信来源的输入,然后盲目地将其传递给eval()时,这才很容易。但是它很慢,在这种情况下是不必要的;这当然足够了@乔纳森·芬格兰——是的,它起作用了。但关联数组对我来说似乎更好。谢谢。@wbdvlpr,哦,我同意。所问的问题是通过window[]方法解决的,但总体上来说,关联数组方法更适合于实践这一切听起来都是错误的方法。为什么需要变量名?这听起来好像是错误的方法。为什么需要变量名?只是为了让erenon的观点更清楚。例如,可以使用var xyz=text[elem]来访问它;感谢@Ernon,再次感谢Jonathan Fingland的使用代码。只是为了让Ernon的观点更清楚。例如,可以使用var xyz=text[elem]来访问它;感谢@erenon,再次感谢Jonathan Fingland提供的使用代码。