1.上图:
为了降低函数中的耦合度,我采用了arguments.callee指向当前函数。
这里的 return num*arguments.callee(num-1)
等价于 return num*factorial(num-1)
好处是无论引用函数时使用的是什么名字都可以保证正常完成调用。
我为了测试是否真的如此,就把factorial函数给重写了返回0;
问题来了:当使用表达式把一个函数赋值factorial变量时确实成功了:一个函数返回0,另一个函数返回120;
当使用函数声明的方式定义factorial函数同样返回0时,却两个函数都返回0;
函数表达式和函数声明的问题还是其他问题?