avatar
Programmer Way | IT и фриланс
@ProgrammerwayIT
06.03.2021 21:00
​​Замыкание.
Если по-простому, то это функция, имеющая доступ к переменным родительской функции. Это позволяет нам как бы «замкнуть» нужные переменные, доступ к которым будет иметь только возвращённая функция, это происходит потому, что у каждой функции есть своя область видимости. Поэтому даже после выполнения родительской функции, переменные будут доступны дочерней 

Это бывает полезно, когда нам нужно снабдить функцию новыми переменными, не изменяя саму функцию(например redux thunk), а так же, когда нам нужно сделать один и тот же или похожий функционал, который должен работать отдельно друг от друга, например: нам нужно сделать несколько счетчиков на странице и чтобы не плодить одинаковые функции, мы можем создать замыкание. Тогда мы просто можем написать:

function counter(){
 let count = 0;
 return function(){
  return count++;
 };
}
const firstCounter = counter();

где counter — функция, возвращающая новую функцию, которая замкнёт переменные родительской. А firstCounter — счётчик, работающий независимо от других счетчиков. И теперь мы можем делать неограниченное количество счётчиков на сайте

Так же советую почитать статью про замыкания:
44 3.6K

Обсуждение 0

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram

Programmer Way | IT и фриланс

1.9K
Делиться моим путём до вершин IT индустрии!

Топовый чат: t.me/best_of_it
Открыть в Telegram