Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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};
like image 636
user1776573 Avatar asked Nov 10 '22 15:11

user1776573


1 Answers

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.

like image 133
Jonah Avatar answered Nov 14 '22 23:11

Jonah