Думать, что вы что-то понимаете, и быть в состоянии сформулировать что-то — две совершенно разные вещи. Я научился этому больше благодаря программированию, чем чему-либо еще. Возьмем, к примеру, замыкания. Я использовал их неосознанно, что, вероятно, делает большинство начинающих разработчиков, но я чувствую, что если вы полностью их поймете, вы сможете начать писать лучший код JavaScript.
Определение
Замыкание — это внутренняя функция, которая имеет доступ к переменным внешней функции, или, по сути, функция внутри функции.
Пример
Вот часть моей функции saveGame() из игры Tic Tac Toe, которую я недавно создал. Переменная board определяется с помощью пустого массива, а затем в функции JQuery .each мы добавляем innerText к доске из каждого («td») (каждого места на доске).
function saveGame(){ let board = [] $('td').each(function(){ board.push(this.innerText) }) } // rest of
Замыкания отлично подходят для объектно-ориентированного программирования. Они помогают с абстракцией и инкапсуляцией. Еще один интересный момент, о котором я не знал до исследования, заключается в том, что forEach на самом деле является функцией обратного вызова. Он принимает функцию обратного вызова (это функция, которую вы запускаете для массива «для каждого» элемента в массиве).
Возвращаясь к моему начальному пункту — я понял, что неосознанно использовал замыкания в своих ранних написаниях JavaScript, но понятия не имел, что у них есть официальное название. Также полезно подумать о том, как работает метод forEach, и осознать, что он на самом деле работает как функция обратного вызова.