显然,内部函数可以访问外部作用域的变量,例如
function example() {
console.log('My name is ' + name);
}
var name = 'Dave';
example();
是否可以使用括号表示法访问该变量? e.g。
function example() {
console.log('My name is ' + outerScope['name']);
}
(对于那些想知道我为什么要这样做的人来说,这是一种潜在的调试技术,而不是实际的生产代码。)
答案 0 :(得分:2)
不,那是不可能的。范围不是JS代码可访问的对象,也没有属性。
如果您想通过名称使用字符串访问变量,则可以使用name
。或者,您应该检查您的运行时是否具有可以使用的调试API,它通常会公开此类信息。