javascript - JavaScript 函数可以返回自身吗?

标签 javascript function self

我可以编写一个返回自身的函数吗?

我正在阅读一些关于关闭的描述 - 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/

相关文章:

function - Scala 定义函数标准

collections - 嵌入式 HAL 资源集合中没有 self href

python报告缺少参数

javascript - 单击在移动浏览器上不起作用

c - 调用更改结构体值的函数时出现问题

javascript - TypeScript:如何在构造函数中设置对象属性(取决于对象属性)

python - 如何随机化 if/elif 语句的顺序?

python - 每次在 python 中调用时都会更新 __init__ 中的 self 变量

javascript - 变量中的 Jquery AJAX 响应 JSON。

javascript - 将图像添加到 Google map 标记