有没有办法参考当前的功能?

Ere*_*evi 2 javascript recursion node.js

为了进行比较,我正在编写某个递归函数的几个相似版本.我的函数看起来像这样:

function rec1(n) {
    /* some code */

    rec1(n-1);
}
Run Code Online (Sandbox Code Playgroud)

然后,要创建另一个版本,我复制并粘贴并获取:

function rec2(n) {
    /* some other code */

    rec2(n-1);
}
Run Code Online (Sandbox Code Playgroud)

等等

我不知道是否有某种方法可以引用"当前函数"(就像在Unix脚本中一样,可以使用$ 0引用"当前脚本")而不必更改每个版本中函数的名称.变量),以便我可以写:

function rec1(n) {
    /* some code */

    $this_function$(n-1);
}
Run Code Online (Sandbox Code Playgroud)

Ber*_*rgi 6

你可以使用arguments.callee,但它已被弃用.

更好的只是命名函数,并给它们所有相同的名称:

var rec1 = function rec(n) {
    /* some code */

    rec(n-1);
};
var rec2 = function rec(n) {
    /* some other code */

    rec(n-1);
};
Run Code Online (Sandbox Code Playgroud)

...在哪里rec作为当前函数的范围,并指向当前函数.

  • 还有FWIW,[这里是一个解释](http://stackoverflow.com/a/235760)为什么`arguments.callee`被弃用了. (2认同)