user1776573
user1776573

Reputation: 281

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};

Upvotes: 5

Views: 207

Answers (2)

Jonah
Jonah

Reputation: 16222

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.

Upvotes: 1

Niranjan Borawake
Niranjan Borawake

Reputation: 1638

You need to read two things Closures and Function and function scope.

Upvotes: 0

Related Questions