谁能解释一下以下片段之间的区别..
var a = function(){
return function(){
//some code
}
}();
和
var a = function(){
//some code
}
我知道我们使用返回函数来访问父函数中定义的变量,这是一个自执行函数,但在第一种情况下,第一个函数除了返回另一个函数外什么都不做。我已经看过几次这种类型的函数,但无法弄清楚它的用途。另外请解释一下上面的功能
var session = (function(){return ${session}})();
和
var session = ${session};
最佳答案
我有 95% 的信心认为这里的官方答案应该是,至少在 OP 的两个示例案例中,使用 IIFE 是多余的。在这两个示例中,未包装的版本更可取且更清晰。
另一种未提及的可能性是,代码示例可能来自编译成 JavaScript 的众多语言之一,例如 coffeescript。用 IIFE 包装可能是编译器的一个很好的通用策略,但它有时会导致多余的代码,例如 OP 的示例。
关于Javascript 函数返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21013449/