我需要使用其名称获取变量的值。但我还需要考虑范围内容。例如,我的用户可能会编写以下代码:
var x = 20;
function func1(){
var x = 30;
return function(){
return x;
}
}
var func = func1();
现在他们将func
传递给我,还有一个名为"x"
的字符串,我需要从x
所属的范围中评估func
。
为了更清楚,我需要实现一个函数,它接受两个参数,一个是对象,另一个是表示变量名的字符串。该函数需要从第一个对象所属的范围返回第二个参数表示的变量的值。
function resolveValue(obj, name){
//unimplemented;
}
resolveValue(func, "x"); //return 20 in this example.
我认为如果我可以获得范围链,可以这样做,但是这可以在javascript中使用吗?