Что такое полифиллинг в JavaScript и как работают обратные вызовы
4/30 из 30 дней решения и пояснений JavaScript от LeetCode
Сегодняшняя проблема требует небольшого представления о том, как работают обратные вызовы и как с их помощью можно кодировать некоторые из Современных методов, например map.
Итак, давайте сначала перейдем к самому первому вопросу
Что такое полифиллинг?
Это очень простая, но важная тема для понимания, так как это поможет вашему коду охватить более широкий круг людей и может повлиять на репутацию продукта.
По мере роста сообщества JavaScript и появления новых и новых функций и версий появляется множество старых браузеров или компьютеров, на которых работает старая версия клиента браузера, которая не сможет поддерживаться, но некоторые или многие из ваших клиентов по-прежнему принадлежат
эта категория, так как же убедиться, что код, который вы пишете, будет поддерживаться в старых браузерах или их версиях?
Вы создаете полифилл, который является реализацией Современного метода в тривиальной функции, которая использует самые основные компоненты JS, которые будут поддерживаться почти всеми браузерами и версиями, и решение сегодняшней проблемы является одним из таких примеров. .
Теперь переходим к следующему вопросу
Что такое обратные вызовы и как они работают?
Функция обратного вызова — это функция, передаваемая в другую функцию в качестве аргумента, которая затем вызывается внутри внешней функции для завершения какой-либо подпрограммы или действия.
как мы видели в нашем коде здесь
const map = function(arr, fn)
а также собственно здесь
mappedArr.push(fn(arr[i],parseInt(i)))
Итак, если вы, ребята, помните Стек вызовов, аналогичным образом JavaScript также использует еще одну структуру данных, называемую Очередь обратного вызова.
на приведенной здесь диаграмме показано, как стек вызовов и очереди обратного вызова используются вместе в цикле событий.
Код
/** * @param {number[]} arr * @param {Function} fn * @return {number[]} */ const map = function(arr, fn) { const mappedArr=[] for(const i in arr){ mappedArr.push(fn(arr[i],parseInt(i))) } return mappedArr };
Заключение
Экосистема JavaScript быстро растет, и иногда некоторые другие приложения могут не догнать, поэтому для того, чтобы мы могли поддерживать наш продукт, нам нужно сделать наше приложение обратно совместимым, и здесь полифиллы играют важную роль наряду с передачей функции внутри другой функции. позволяет нам контролировать выполнение и результат другой функции, что позволяет нам лучше разделять код с помощью обратных вызовов.
Предыдущая статья — https://medium.com/@varnitsharma-102/arrow-functions-and-a-better-way-of-functional-object-Oriented-programming-in-js-5e1542cd02fe
Проблема — https://leetcode.com/problems/apply-transform-over-each-element-in-array/description/