如何在JS中通过其名称获取局部变量?

时间:2010-01-27 10:49:26

标签: javascript

使用全局变量的工作示例:

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]);
}

4 个答案:

答案 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]);
}