当方法具有相同名称的参数时,访问闭包变量

时间:2013-04-07 09:45:23

标签: javascript

请考虑以下代码:

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

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

这将打印传递给foo的值。

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

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:0)

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

顺便说一句,如果您可以控制变量和参数名称,那么最好用更好,更少混淆的方式命名它们