2016-06-29 1 views
-2

Я видел это на каком-то примере кодаЧто значит заключить функцию в круглые скобки, прежде чем передавать ее в переменную?

var foo = (function(){ 
    //some code 
})(); 

Что это значит? и как она отличается от

var foo = function() { 
    //some code 
} 

я увидел, что here, где исходный код был:

var registrationForm = (function() { 
    var callbacks = []; 

    function inputChanged() { 
     // Execute registered callbacks 
     for(var i = 0; i < callbacks.length; i++) { 
      callbacks[i](isValid()); 
     } 
    } 

    function isValid() { 
     // Check whether form is valid or not 
     return !!(name.value) && !!(dateOfBirth.value) && !!(email.value); 
    } 

    function getFormData() { 
     // Get form values 
     return { 
      name: name.value, 
      dateOfBirth: dateOfBirth.value, 
      email: email.value 
     }; 
    } 

    var name = document.getElementById("inpName"); 
    var dateOfBirth = document.getElementById("inpDob"); 
    var email = document.getElementById("inpEmail"); 

    name.addEventListener("change", inputChanged); 
    dateOfBirth.addEventListener("change", inputChanged); 
    email.addEventListener("change", inputChanged); 

    return { 
     isFormValid: function() { 
      return isValid(); 
     }, 
     getFormData: function() { 
      return getFormData(); 
     }, 
     attachFormChanged: function(cb) { 
      callbacks.push(cb); 
     } 
    }; 
})(); 

ответ

-1

Это называется немедленно вызывается функция выражения. Он вызывается, как только он объявлен, против последнего, вы должны вызвать его, чтобы выполнить его.

Смежные вопросы