据我所知,在Javascript中,函数可以返回另一个函数,可以立即调用它。但我不明白这样做的原因。有人可以解释为什么你可能想在你的代码中这样做的原因和好处?此外,该功能是返回'你好'考虑关闭?
function a () {
return function () {
console.log('hello');
}
}
//then calling the function
a()();
答案 0 :(得分:3)
有人可以在您的代码中解释为什么您可能想要这样做的原因和好处吗?
当您在调用函数(<{1}}时)总是执行此操作时,没有理由这样做。一般情况下的原因是a
的作者允许您可能不想立即调用结果函数。所以a
案例只是
a()();
此外,返回'hello'的函数是否被视为闭包?
是的,从技术上讲,虽然在你的例子中没有任何特殊的东西可以关闭var f = a();
// later...
f();
尚未关闭,因为a
中没有参数或a
内的变量1}}。
更多(在我的贫血博客上):Closures are not complicated