Javascript - 递归调用

时间:2015-02-27 20:05:23

标签: javascript recursion arguments

如果在Javascript中进行递归调用,基本上有两种方法可以实现。第一种方式 -

function a() {
a();
}

和第二种方式 -

function a() {
arguments.callee();
}

问题 - 1)在许多地方给出的第二种方式比第一种方式好,但没有解释。

2)Arguments.callee被弃用,有什么替代方案?

3)有没有办法以递归方式调用自调用函数,并且该函数也是匿名函数。如下所示,不使用arguments.callee或其中的任何其他函数。

console.log((function() {
//Recursive call...how?
})()
);

1 个答案:

答案 0 :(得分:1)

1)除非有一个很好的技术原因(你说你在许多地方读过这个但没有提供任何参考)我发现第一种方式更好,因为它更清楚。

2)替代方案恰恰就是你所谓的“第一条道路”。

3)你已经解决了给这个函数命名的问题,所以它不再是匿名的了:

console.log((function a() {
    a();
})());