函数需要一个参数变量来获取参数。
我有一个主函数,想要用它控制两个操作。因此,我将不同的变量传递给该函数。
我的问题是是否也可以将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
}
}