根据变量名获取局部变量的值

时间:2014-05-05 01:46:16

标签: javascript eval scope

我想知道是否可以通过使用该变量的名称来访问变量(即获取该变量的值)。一个例子是:

function myObject(){
   var x = 1;
   this.get = function(varName){return eval(varName);};
}
var test = new myObject();
test.get("x");

我知道这可以通过eval实现,但我想知道如果不使用eval就可以完成同样的操作,例如使用 Function 。 (我正在使用的框架中不允许使用eval。)

1 个答案:

答案 0 :(得分:0)

您可以将全局变量作为关联数组访问,如下所示:

var x = 5;
var variableName = "x";
window[variableName];

在您的情况下,如果您将this[varName]替换为var x,则可以返回this.x