请考虑以下代码:
function() {
var a = "Hello World";
function foo(a) {
alert(a);
}
}
这将打印传递给foo
的值。
如何访问闭包中定义的a
变量,以便打印“Hello World”?
答案 0 :(得分:5)
你不能因为它在函数范围被覆盖。我也不明白为什么这样的结构会有用。至少可以说这很令人困惑。 只需更改参数或变量名称。
答案 1 :(得分:0)
如果您在声明变量时未使用var
,则它将是全局变量,您可以通过window.a
访问它。如果外部函数绑定到窗口对象,这也可以。
顺便说一句,如果您可以控制变量和参数名称,那么最好用更好,更少混淆的方式命名它们