JavaScript函数返回值

5
请问有人能解释一下以下代码片段之间的区别吗?
var a = function(){
       return function(){
                  //some code 
                        }
                  }();

并且。
 var a = function(){
                  //some code
                   }

我理解我们使用return函数来访问在父函数中定义的变量,这是一个自执行函数,但在第一种情况下,第一个函数什么也没做,只是返回另一个函数。我已经多次看到过这种类型的函数,但无法弄清楚它的作用。请您解释一下上述函数。

var session = (function(){return ${session}})();

并且

var session = ${session};

4
由于函数中没有声明局部变量,因此实际上并没有什么不同。 - Quentin
@Quentin:这正是我想知道的..谢谢.. - user1776573
2个回答

1
我非常确信,至少在原帖的两个示例中,使用IIFE是多余的。在这两个示例中,未包装的版本更可取、更清晰。
还有一种可能性没有被提到,那就是代码示例可能来自于众多编译成JavaScript的语言之一,比如coffeescript。对于编译器来说,用IIFE进行包装可能是一个好的通用策略,但有时会导致类似于原帖示例的冗余代码。

0

@Jonah 再考虑了一下,并根据问题中的代码更新了答案,你似乎是正确的。我以一种通用的方式回答了它。谢谢。 - Niranjan Borawake

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接