书上说下面这样写不好。functionfactorial(num){if(num
2 回答
狐的传说
TA贡献1804条经验 获得超3个赞
第一种实现方式依赖于外层函数的名称factorial,而factorial可能会在后来被其他值改写第二种实现方式不依赖于函数的名称,而是用arguments对象的callee属性来指向外层函数
慕的地6264312
TA贡献1817条经验 获得超6个赞
第二种的好处,Joe3已经说了。但坏处是:arguments.callee的性能不佳,已经被标准所摈弃了。所以其实第一种反而是目前标准推荐的写法。考虑到你不太可能经常变换函数名称,而且即使变换了,顺手把递归部分一起改掉,也不会是什么麻烦事,所以还是按标准写吧。
添加回答
举报
0/150
提交
取消