【问题标题】:Change a boolean back and forth in Javascript在Javascript中来回更改布尔值
【发布时间】:2014-05-28 20:20:59
【问题描述】:

我想知道在 Javascript 中是否有可能有一个 click 事件侦听器,每次我单击时,我的布尔值都会从 true 到 false 来回更改。意思是我点击一个它会变成假,我再次点击它会变成真的,依此类推,无限循环。我什至不知道这是否可能,但我试过了:

//This is my listener
circlePicker.click(function () {
    booleanChecker(circlePickerSelector);
    console.log(booleanChecker(circlePickerSelector));
});

//This function checks if the boolean is true or false
function booleanChecker(isThisTrue) {
    // circlePickerSelector = !circlePickerSelector;
    // return circlePickerSelector;
    if (isThisTrue == false) {
        isThisTrue = true;
        console.log("I turned into true");
    } else if (isThisTrue == true) {
        isThisTrue = false;
        console.log("I turned into false");
    }
    return isThisTrue;
}

我想知道这是否可能。我感觉我的语法有问题。任何建议都非常受欢迎。

【问题讨论】:

    标签: javascript boolean dom-events


    【解决方案1】:

    您可以使用! 运算符来切换它

    circlePicker.click(function () {
        circlePickerSelector = !circlePickerSelector;
        console.log(circlePickerSelector);
    });
    

    如果 circlePickerSelector 最初是 true,则 !circlePickerSelector 将其变为 false。然后,您可以将其分配给相同的变量,以便在下次单击时执行相反的操作。

    【讨论】:

      【解决方案2】:

      围绕一个变量创建一个闭包,然后从该闭包内部返回一个函数,例如,

      function bool(initial) {
          initial = !!initial;
          return {
               get current() {
                   return initial;
               },
               toggle: function () {
                   return initial = !initial;
               }
          };
      }
      var b = bool(true);
      b.current;  // true
      b.toggle(); // false
      b.current;  // false
      b.toggle(); // true
      b.current;  // true
      

      【讨论】:

        猜你喜欢
        • 2012-12-30
        • 1970-01-01
        • 1970-01-01
        • 2021-08-03
        • 2014-01-06
        • 1970-01-01
        • 2022-01-15
        • 1970-01-01
        • 2019-03-20
        相关资源
        最近更新 更多