简体   繁体   中英

Javascript function return value

could anybody please explain the difference between the following snippets..

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

and

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

I understand we use return function to access variables defined in the parent function and this is a self-executing function but in the first case the first function does nothing but return the other function. I have seen this type of functions a couple of times and am not able to figure out what it is for. Also please explain the above function

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

and

var session = ${session};

I am 95% confident that the official answer here should be, at least in the two examples cases from the OP, that the use of an IIFE is superfluous. In the two examples, the unwrapped versions are preferable and clearer.

One other possibility that hasn't been mentioned is that the code samples may be coming from one of the many languages that compiles into JavaScript, such as a coffeescript. It may be that wrapping with IIFE is a good general strategy for the compiler, but that it sometimes results in superfluous code such as the OP's examples.

您需要阅读闭包功能以及功能范围两个方面。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM