为什么这个变量超出范围,JavaScript?

时间:2014-04-29 18:29:47

标签: javascript jquery web

function foo(){
    var bar = 0;
    $("#dummy").click(function(){
          bar += 1;
     })
}

我认为该栏位于函数foo中,所以它总是可调用的。但是,错误消息是变量栏未定义。任何人都可以解释原因吗?

1 个答案:

答案 0 :(得分:0)

它不在范围之外。 您正在函数中定义单击处理程序,因此您必须调用该函数才能发生任何事情,但除此之外,您发布的代码并未揭示您应该收到该错误的原因。

这是一个例子(我删除了jQuery):

<button>Add one</button>
<div>bar is: <span id="barCount">0<div></div>

function foo(){
  var bar = 0;
  document.querySelector("button").onclick = function(){
    bar += 1;
    document.querySelector("#barCount").innerHTML = bar;
  };
}

foo();

<强> Fiddle