前面聊闭包的时候提到了不少JavaScript函数表达式的用法。这里补充一个,就是借助函数表达式构建递归函数,因为有一丢丢小坑值得注意一下。
我们先来看一个大家都会写的递归函数:1
2
3
4
5
6
7function factorial(num) {
if (num <= 1) {
return 1;
} else {
return num * factorial(num - 1);
}
}
看起来这是一个很普通的递归函数,普通的递归函数普通地使用是完全没有问题的。
然而,如果有个人如此这般操作一波: