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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With