Javascript函数返回值

时间:2014-01-09 06:51:10

标签: javascript jquery jsp

任何人都可以解释以下片段之间的区别..

var a = function(){
       return function(){
                  //some code 
                        }
                  }();

 var a = function(){
                  //some code
                   }

我理解我们使用return函数来访问父函数中定义的变量,这是一个自动执行的函数,但在第一种情况下,第一个函数除了返回另一个函数之外什么都不做。我已经看过几次这种类型的功能,但我无法弄清楚它的用途。另请说明上述功能

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

var session = ${session};

2 个答案:

答案 0 :(得分:1)

我有95%的信心,这里的官方答案应该是,至少在OP的两个案例中,使用IIFE是多余的。在这两个例子中,展开的版本更好,更清晰。

另一种未提及的可能性是代码示例可能来自编译成JavaScript的许多语言之一,例如coffeescript。 IIFE的包装可能是编译器的一个很好的通用策略,但它有时会产生多余的代码,例如OP的例子。

答案 1 :(得分:0)

您需要阅读两件事ClosuresFunction and function scope