通过括号表示法访问外部作用域的变量

时间:2015-08-06 20:23:05

标签: javascript closures

显然,内部函数可以访问外部作用域的变量,例如

function example() {
    console.log('My name is ' + name);
}

var name = 'Dave';
example();

是否可以使用括号表示法访问该变量? e.g。

function example() {
    console.log('My name is ' + outerScope['name']);
}

(对于那些想知道我为什么要这样做的人来说,这是一种潜在的调试技术,而不是实际的生产代码。)

1 个答案:

答案 0 :(得分:2)

不,那是不可能的。范围不是JS代码可访问的对象,也没有属性。

如果您想通过名称使用字符串访问变量,则可以使用name。或者,您应该检查您的运行时是否具有可以使用的调试API,它通常会公开此类信息。