如果在Javascript中进行递归调用,基本上有两种方法可以实现。第一种方式 -
function a() {
a();
}
和第二种方式 -
function a() {
arguments.callee();
}
问题 - 1)在许多地方给出的第二种方式比第一种方式好,但没有解释。
2)Arguments.callee被弃用,有什么替代方案?
3)有没有办法以递归方式调用自调用函数,并且该函数也是匿名函数。如下所示,不使用arguments.callee或其中的任何其他函数。
console.log((function() {
//Recursive call...how?
})()
);
答案 0 :(得分:1)
1)除非有一个很好的技术原因(你说你在许多地方读过这个但没有提供任何参考)我发现第一种方式更好,因为它更清楚。
2)替代方案恰恰就是你所谓的“第一条道路”。
3)你已经解决了给这个函数命名的问题,所以它不再是匿名的了:
console.log((function a() {
a();
})());