为了进行比较,我正在编写某个递归函数的几个相似版本。我的功能看起来像这样:
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);
}
答案 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
的作用域是当前函数,并指向当前函数。