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

时间:2014-09-21 16:38:14

标签: javascript node.js recursion

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

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

    rec1(n-1);
}

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

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

    rec2(n-1);
}

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

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

    $this_function$(n-1);
}

1 个答案:

答案 0 :(得分:6)

您可以使用arguments.callee,但已弃用。

最好只是name the functions,并给他们所有相同的名字:

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

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

    rec(n-1);
};

...其中rec的作用域是当前函数,并指向当前函数。