JSFiddle - React, Tailwind, and code Playground

by geirby

HTML

Пускай у нас есть массив ссылок, и наша задача — сделать так, чтобы при клике на каждую выводился алертом ее порядковый номер
Пускай у нас есть объект (синглтон), содержащий какие-либо методы и свойства:
var MyModule = {
   name: 'Habrahabr',
   sayPreved: function(name) {
      alert('PREVED ' + name.toUpperCase())
   },   
   sayPrevedToHabrahabr: function() {
      this.sayPreved(this.name);
   }
}
MyModule.sayPrevedToHabrahabr();
С помощью замыкания мы можем сделать методы и свойства, которые вне объекта не используютя, приватными (т.е. доступными только ему):
var MyModule = (function() {
   var name = 'Habrahabr';
   function sayPreved() {
      alert('PREVED ' + name.toUpperCase());
   }
   return {
      sayPrevedToHabrahabr: function() {
         sayPreved(name);
      }
   }
})();
MyModule.sayPrevedToHabrahabr(); //alerts «PREVED Habrahabr»

JavaScript

function createCounter() {
   var numberOfCalls = 0;
   return function() {
      return ++numberOfCalls;
   }
}
for (var i = 0; i < links.length; i++) {
   (function(i) {
      links[i].onclick = function() {
         alert(i);
      }
   })(i);
}
var fn = createCounter();
console.log(fn());
console.log(fn());
console.log(fn());