可以将条件语句作为函数参数传递吗



我有一个主函数,想要用它控制两个操作。因此,我将不同的变量传递给该函数。

我的问题是是否也可以将If查询的条件打包到变量中。

对于一个操作,我希望CurrentImageNumber <= 3作为if参数,对于另一个操作CurrentImageNumber >= 2在if查询中。

代码看起来像这样:

function imageChange() {
CurrentImageNumber = parseInt(CurrentImageID.slice(-1)) // not a static value
if (b) {
// Some fancy Code where var a is used  
}
else {        
// Some fancy Code where var c is used
}
}
document.getElementById('button-1').onclick = function() {
imageChange(a = 1, b = CurrentImageNumber <= 3, c = -3)    
}
document.getElementById('button-2').onclick = function() {
imageChange(a = -1, b = CurrentImageNumber >= 2, c = 2)    
}

是的,你可以这样做,但实际发生的是,检查条件,predicate返回一个boolean值,该值被解析到函数中。

这样做:

doStuff(CurrentImageNumber <= 4);
function doStuff(a) {
if (a) {
// Execute some fancy code
}
}

但运行时实际发生的情况相当于:假设CurrentImageNumber==0:

const predicateResult = CurrentImageNumber <= 4;
// Here predicateResult is of type boolean and is true
doStuff(predicateResult);
function doStuff(a) {
if (a) {
// Execute some fancy code
}
}
函数需要一个参数变量来获取参数。
doStuff(CurrentImageNumber >= 2)
doStuff(CurrentImageNumber <= 4)
function doStuff(a) {
if (a) {
// execute some fancy code
}
}

最新更新