这是书中的一个例子。如果偶数该函数返回 TRUE,否则返回 FALSE。我不明白它是如何工作的。我的理解是这样的:
- 42 绑定(bind)到 n
- 创建“偶数”函数
- x 绑定(bind)到 n,其中 n = 42
- x!= 0
- 启动“else”
- 创建“奇数”函数
- 奇数(42 - 1)
- 正在启动“!even(41)”。
JS 对“even(41)”做了什么? TRUE 从哪里来?据我理解,只有当 x === 0 时才应返回 TRUE
document.write(
((n) => {
const even = (x) => {
if (x === 0) return true;
else {
const odd = (y) => !even(y);
return odd(x - 1);
}
}
return even(n)
})(42)
)
最佳答案
这是故意造成困惑的。遵循逻辑。
如果 n 不为 0,我们创建一个名为 odd 的新函数,它调用 Even 并反转 Even 的 bool 值。
然后我们用 n-1调用该函数。
所以本质上,它就像一个 while 循环,你不断地从数字中减去 1,并在每一步中反转它的真假,直到得到 0。如果该函数被调用偶数次,则它是偶数。如果调用奇数次,则为奇数。
关于javascript - 这个函数从哪里获取它的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38042777/