var foo = "bar"
var bar = "realvalue";
Run Code Online (Sandbox Code Playgroud)
是否有可能要打印的值bar使用foo?
Akh*_*ran 44
方法1:全局变量
var foo = "bar";
var bar = "realvalue";
alert(window[foo]);
Run Code Online (Sandbox Code Playgroud)
要么
方法2:命名空间
将js划分为名称空间
var namespace = {
foo : "bar",
bar : "realvalue"
};
alert(namespace[namespace.foo]);
Run Code Online (Sandbox Code Playgroud)
cow*_*wls 17
是的,你可以做这样的事情 eval
var foo = "bar";
var bar = "realvalue";
alert(eval(foo));
Run Code Online (Sandbox Code Playgroud)
编辑:似乎很多人反对使用eval()函数.我在使用之前的建议是读这个问题:为什么使用JavaScript eval函数是一个坏主意?
一旦你了解了风险,你可以自己决定,如果你想使用它.
Ja͢*_*͢ck 10
不要使用非全局变量来执行此类构造,只需考虑您可能会浮动的任何变量.
var myscope = {
bar: 'realvalue'
},
foo = 'bar';
alert(myscope[foo]);
Run Code Online (Sandbox Code Playgroud)
顺便说一句,上面不依赖浏览器的默认行为来在window对象中注册全局变量,使其适用于Node.js之类的东西.
| 归档时间: |
|
| 查看次数: |
1191 次 |
| 最近记录: |