在Javascript中来回更改布尔值
Posted
技术标签:
【中文标题】在Javascript中来回更改布尔值【英文标题】:Change a boolean back and forth in 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;
我想知道这是否可能。我感觉我的语法有问题。任何建议都非常受欢迎。
【问题讨论】:
【参考方案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
【讨论】:
以上是关于在Javascript中来回更改布尔值的主要内容,如果未能解决你的问题,请参考以下文章