如何明确引用全局函数?

时间:2016-03-08 16:07:37

标签: javascript

如果使用其名称参考例如,我如何引用全局函数?而是一个局部变量?

举一个递归的简单例子:

function foobar(foobar) {
    return foobar(foobar+1); //<- error in this line
}

这将产生错误“foobar不是函数”,因为相同的名称被定义为参数。如何在不重命名函数和参数的情况下显式引用该函数? 我试过了

function foobar(foobar) {
    return Window.foobar(foobar+1);
}

没有成功。

2 个答案:

答案 0 :(得分:0)

正如@Juhana所说,这将有效,你将获得Exception: InternalError: too much recursion预期的

function foobar(foobar) {
    return window.foobar(foobar+1);
}
foobar(3);

答案 1 :(得分:0)

您可以使用命名函数表达式。在函数内使用函数名称(recursive)。从外部将函数分配给名为foobar的变量:

var foobar = function recursive(foobar) {
    return recursive(foobar + 1);
}

foobar(5);