我正在通过EloquentJS第5章高阶函数,我无法完全理解他提供创建新函数的函数示例的部分。我遇到麻烦的地方是了解提供新型控制流程的功能:
function unless(test, then) {
if (!test) then();
}
function repeat(times, body) {
for (var i = 0; i < times; i++) body(i);
}
repeat(3, function(n) {
unless(n % 2, function() {
console.log(n, "is even");
});
});
// → 0 is even
// → 2 is even
在我看来,它说的是测试参数是否为假,然后运行作为第二个参数传递的函数。
由于0%2和2%2 == 0,函数不会作为“然后”传递吗?换句话说,它不应该返回奇数吗?我哪里错了?我觉得我特别密集。
这就是我正在阅读“除非”功能:
//if (!(n %2)) then run the function.
我不知道我是如何说服自己与功能实际做的相反的。谢谢你的时间。