使用全局变量的工作示例:
var example_var = 'global var example'; var x = function(){ var var_name = 'example_var'; alert('Global var value is: ' + window[var_name]); }
如何使用局部变量做同样的事情?像这样(不是工作示例):
var x = function(){ var example_var = 'Local var example'; var var_name = 'example_var'; alert('Local var value is: ' + window[var_name]); }
答案 0 :(得分:5)
如果您没有其他办法,可以尝试eval
var x = function(){
var example_var = 'Local var example';
var var_name = 'example_var';
alert('Local var value is: ' + eval(var_name));
}
答案 1 :(得分:2)
您不想使用eval
;本地范围的对象可能是您的最佳选择:
var x = function(){
var self = {};
self.example_var = 'Local var example';
var var_name = 'example_var';
alert('Local var value is: ' + self[var_name]);
}
答案 2 :(得分:-2)
可能:
var x = function(){
var example_var = 'Local var example';
var var_name = example_var;
alert('Local var value is: ' + var_name);
}
或:
var x = function(){
var example_var = 'Local var example';
window.var_name = example_var;
alert('Local var value is: ' + window[var_name]);
}
或
var x = function(){
var var_name = 'Local var example';
alert('Local var value is: ' + var_name);
}
答案 3 :(得分:-3)
目前有两种解决方法可以解决这个问题 1. eval(),但我真的不喜欢使用邪恶() 2.我们可以将变量声明从var更改为:
var x = function(){ this.example_var = 'this.var example'; this.var_name = 'example_var'; alert('Local variable value is: ' + this[var_name]); }