Search code examples
javascriptiife

A Javascript function


Please explain the following way of writing a function in javascript functions :

(function (){
 // some code 
})()

I understand the fact that because of the trailing braces " () ", the function will execute immediately but but what does enclosing the function in the braces mean?


Solution

  • Your syntax is incorrect. Edit: fixed.

    Look at a normal function definition that you want to call once and only once:

    function add(x,y) {
       var z = x + y; 
       // do something with z
    }
    
    add(2,3);
    

    You could reduce this code so that you execute it straight away, there is no need to name it add:

    (function(x ,y) {
       var z = x + y; 
       // do something with z
    })(2,3)
    

    Note how we have surrounded the function with a set of parenthesis to make it a callable expression. This pattern is often used to create a closure (capture the state of) certain variables, for example:

    jQuery.noConflict(); //Disables the use of $ in the global scope
    (function($) {
    
       //Safely use $ inside this function
       $('.link').click(function(e) {
          //etc
       });
    
    })(jQuery);