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