理解Javascript变量范围

时间:2013-12-04 20:31:45

标签: javascript

foo: function () {
  var bValue = false;

  boo(2, function () {
    bValue = true;
    if (bValue)
      alert("bvalue is true 1");
  });

  if (bValue)
    alert("bvalue is true 2");
}

boo: function (val, fn) {
  fn();
}

我在代码中做了类似的事情而无法获得第二次警报。您是否在上面的代码中看到任何问题。

1 个答案:

答案 0 :(得分:1)

您在功能声明中滥用标签。而不是

boo: function (val, fn) {
  fn();
}

你应该写

function boo(val, fn) {
  fn();
}

同样的问题是foo。这将导致SyntaxError并停止执行整个脚本。幸运的是,如果你看一下控制台,就很容易捕捉到它。