1

考虑以下代码:

function() {
  var a = "Hello World";

  function foo(a) {
    alert(a);
  }
}

这将打印传递给的值foo

如何访问a闭包中定义的变量以便打印“Hello World”?

4

2 回答 2

5

你不能因为它在函数范围内被覆盖。我也不明白为什么这样的结构会有用。至少可以说非常令人困惑。只需更改参数或变量名称。

于 2013-04-07T10:04:44.903 回答
0

如果在声明变量时不使用var,它将是全局的,您可以通过window.a. 如果外部函数绑定到窗口对象,这也可以工作。

顺便说一句,如果您可以控制变量和参数名称,您最好以更好、更简洁的方式命名它们

于 2013-04-07T10:09:27.443 回答