如何使用与之前调用的布尔值相反的函数调用函数
How to call a function with the opposite boolean to what it was previously called with
对,所以我正在做一个Agario扩展。
我想要它,所以当你按下一个按钮 (m) 时,它会调用一个函数(setShowMass)函数,其布尔值与上次调用的布尔值相反。
document.addEventListener('keydown',function(e){
var key = e.keyCode || e.which;
if(key == 71){
window.agar.drawGrid = !window.agar.drawGrid;
}
if(key == 77){
setShowMass(!massShown);
massShown = !massShown;
}
});
您可以缓存结果:
var oppositebool = true;
document.addEventListener('keydown',function(e){
var key = e.keyCode || e.which;
if(key == 71){
window.agar.drawGrid = !window.agar.drawGrid;
}
if(key == 77){
setShowMass(oppositebool);
oppositebool = !oppositebool;
}
});
您还可以
创建一个函数来包装另一个函数,并调用该函数,每次在true
和false
之间切换。
const trueFalse = (fn, initial) => {
return () => {
fn(initial);
initial = !initial;
}
};
const log = (bool) => console.log(bool);
const switchingLog = trueFalse(log, true);
switchingLog(); // true
switchingLog(); // false
switchingLog(); // true
您可以创建一个记住最后一个值的包装函数。例如:
function callWithOppositeBoolean(func, startingValue) {
var bool = !startingValue;
return function() {
bool = !bool;
return func(bool);
}
}
然后,您可以使用它创建一个包装函数,该函数调用原始函数,与 true 和 false 交替:
var toggleShowMass = callWithOppositeBoolean(showMass, true);
toggleShowMass(); // showMass(true)
toggleShowMass(); // showMass(false)
toggleShowMass(); // showMass(true)
相关文章:
- Javascript:应为赋值或函数调用,但实际看到的却是表达式
- AngularJS和promise值在调用本地函数时的效果-未定义
- Javascript:JSHint:应为赋值或函数调用,但实际看到的却是表达式
- 如何在另一个函数调用中设置全局数组值
- 从下拉列表中选择多个值并调用javaScript函数
- 它的值是由函数调用的词法性质决定的
- 错误-应为赋值或函数调用,但实际看到的却是表达式
- 类型错误:布尔值不是 Angular 中登录函数的函数
- “期望赋值或函数调用,而是看到了表达式.” - 不必要的控制台.log
- Js提示:“;期望一个赋值或函数调用,而看到一个表达式“;,Switch语句
- 在异步函数调用过程中,当对象的属性值发生变化时,JavaScript中的对象属性值会发生什么变化
- 无法访问字段'通过aspx页面上的javascript函数传递来自代码隐藏中函数调用的客户端id的s值(页面加载
- Window.open不工作,布尔值不是函数
- 如何在jQuery中的函数调用中传递2个值
- 如何使用与之前调用的布尔值相反的函数调用函数
- 每当布尔值在 JavaScript 中变为 false 时调用函数
- 未捕获的类型错误:布尔值不是完整日历中 ajax 调用的函数
- 从JS AJAX函数调用中捕获布尔返回值
- 只有当变量(布尔值)改变时才调用javascript/jquery函数
- 调用一个为ng-show返回布尔值的函数是个好主意吗