May 31, 2023

Замыкания

В JavaScript функции замыкают переменные внешней области видимости, когда они определены.

Функции, вложенные в другие функции, имеют доступ к переменным внешней функции.

function counter () {
  let count = 0

  // этот метод имеет доступ к count
  // потому что он замыкается над внешними переменными
  const plus = (function () {
    count++
  })

  plus()

  return count;

}

console.log(counter()) // => 1

Каждый экземпляр счетчика имеет свою область видимости

console.log(counter()) // => 1
console.log(counter()) // => 1
$ node jsbyexample.js
1
1
1

Подробнее

Далее: this