我可以编写一个返回自身的函数吗?
我正在阅读一些关于关闭的描述 - see Example 6 - 函数返回一个函数,因此您可以将 func()();
作为有效的 JavaScript 进行调用。
所以我想知道一个函数是否可以以这样的方式返回自身,这样你就可以将它无限地链接到自身,如下所示:
func(arg)(other_arg)()(blah);
使用参数
对象、被调用者还是调用者?
最佳答案
有2-3种方法。正如您所说,一种是使用arguments.callee
。如果您正在处理未存储分配给某处(您知道的)变量的匿名函数,这可能是唯一的方法:
(function() {
return arguments.callee;
})()()()().... ;
第二个是使用函数的名称
function namedFunc() {
return namedFunc;
}
namedFunc()()()().... ;
最后一个是使用分配给变量的匿名函数,但你必须知道该变量,所以在这种情况下,我看不出有什么理由,为什么你不能只给函数一个名称,并使用方法同上
var storedFunc = function() {
return storedFunc;
};
storedFunc()()()().... ;
它们在功能上都是相同的,但callee
是最简单的。
编辑:我同意 SLAks 的观点;我也不推荐它
关于javascript - JavaScript 函数可以返回自身吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6959426/