如果使用其名称参考例如,我如何引用全局函数?而是一个局部变量?
举一个递归的简单例子:
function foobar(foobar) {
return foobar(foobar+1); //<- error in this line
}
这将产生错误“foobar不是函数”,因为相同的名称被定义为参数。如何在不重命名函数和参数的情况下显式引用该函数? 我试过了
function foobar(foobar) {
return Window.foobar(foobar+1);
}
没有成功。
答案 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);