Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Awkward way of executing JavaScript code [duplicate]

Tags:

javascript

This is a poor example. Consider the following:

var a = (function(){
    var ret = {};
    ret.test = "123";
    function imPrivate() { /* ... */ }
    ret.public = function() { imPrivate(); }
    return ret;
})();

a will contain the varible test and the function public, however you can not access imPrivate. This is the common way to handle public vs private variables;

See Why is this function wrapped in parentheses, followed by parentheses? for more info.


var a = (function() {
  return foo(bar);
})();

In this case this is really unnecessary, but this is not wrong and it will not throw an error.

But IIF some times uses like module pattern:

var a = (function() {
  /* some other code in own scope */
  return foo(bar);
})();

In this case IIF is just a module which exports something outside.


The closure function is used to encapsulate some of the attributes / methods in the function. Much like the private / public principle from other languages.

You can find more on this topic here under Module Pattern


Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!