为什么不会成为真假?

时间:2014-06-02 15:55:56

标签: javascript syntax boolean conditional

我正在开发一款游戏,由于某种原因,这些点击功能并没有永久地将顶部值更改为true,我使用控制台日志来测试它,而底部日志总是显示为false。我知道这可能很简单,但任何人都可以告诉我吗?

var twoThree = false;
var fourFive = false;
var sevenEight = false;

// button click functions
$('#2_3').click(function(){
  twoThree = true;
  $('#start').hide();
  $('#game').fadeIn('slow');
});
$('#4_5').click(function(){
  var fourFive = true;
  $('#start').hide();
  $('#game').fadeIn('slow');
});
$('#7_8').click(function(){
  var sevenEight = true;
  $('#start').hide();
  $('#game').fadeIn('slow');
});
console.log(twoThree);

2 个答案:

答案 0 :(得分:3)

在函数内部使用var会在该范围内创建一个新变量,因此外部范围中的值不会更改。

答案 1 :(得分:0)

问题是您使用关键字var分配变量。这是在函数范围内声明一个新变量并将其设置为true。 在函数的clausure上设置变量的方法必须通过窗口变量o只使用变量的名称。

这两个电话都有效。

window.fourFive = true;
fourFive = true;

这不是。

var fourFive = true; // Is a local variable of the function