Skip to content
serhij.zolotukhin edited this page Dec 7, 2025 · 1 revision

immediately-invoked function expression

#!javascript
(function () {
    // ...
}());
#!javascript
(function () {
    // Code goes here
})();

Прием немедленно вызываемой функции испольузется для “фиксации” значения, изменяемого в цикле.

#!javascript
var elements = document.getElementsByTagName('a');
for (var i = 0; i < elements.length; i++) {
  elements[i].addEventListener('click', function(e) {
    e.preventDefault();
    alert('Link #' + i);
  }, false);
}

С помощью немедленно вызываемой функции в JavaScript реализуется довольно простой, но очень полезный паттерн — шаблон «модуль». Суть этого паттерна заключается с создании локальной области видимости, в которой определяются локальные, «приватные» переменные и функции

#!javascript

var counter = (function() {
  var i = 0;

  return {
    get: function(){
      return i;
    },
    set: function( val ){
      i = val;
    },
    increment: function() {
      return ++i;
    }
  };
})();

console.log(counter.get()); // 0
counter.set(3);
console.log(counter.increment()); // 4
console.log(counter.increment()); // 5

console.log(counter.i); // undefined
i; // ReferenceError: i is not defined

My side bar

Clone this wiki locally