Polyfill - это концепция, о которой все мы слышали поверхностно, что она используется для обеспечения современной функциональности более старым браузерам. Что ж, сегодня мы попробуем разобраться, зачем они нам нужны и как сделать свой, когда и когда не использовать. Давайте начнем с понимания того, как браузер в любом случае устаревает?

Браузер стареет

Рассмотрим разницу между двумя людьми, говорящими по-английски. Оба свободно говорят по-английски и очень хорошо понимают английский. Но один может не знать некоторых слов или фраз, которые знает другой. То же самое и с браузерами, они оба понимают JavaScript, но некоторые еще не знают его функций.

Технически браузеры имеют свои собственные движки (V8, Chakra и т. Д.) Для понимания JavaScript. Допустим, в ECMAScript появилось несколько новых функций. Текущие браузеры не будут понимать эти новые функции, пока группа / организация, отвечающая за поддержку движков JavaScript, не обновит их, чтобы принять новые изменения. Итак, обновленные - это более новые браузеры, а те, которые еще не обновлены, - это старые браузеры.

Разработчики хотят использовать более новые и крутые функции, но они не поддерживаются некоторыми браузерами, что может сильно повлиять на аудиторию. Чтобы решить эту проблему, разработчик может использовать новую функцию и в старом браузере. Появилась концепция полифилла.

Опять таки!! Что такое ПОЛИФИЛЛ?

По словам создателя термина, «поли» означает, что проблема может быть решена с использованием любого количества методов - это не ограничивается простым выполнением с использованием JavaScript, а «заполнение» заполнит дыру в браузере там, где должна быть технология. . Это также не подразумевало «старый браузер» (потому что нам тоже нужно полифилить новый браузер).

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

Почему их не используют чаще?

Причина, по которой полифилы не используются исключительно, заключается в улучшении функциональности и производительности. Собственные реализации API могут делать больше и быстрее, чем полифилы. Например, полифилл Object.create содержит только те функции, которые возможны в неродной реализации Object.create.

Когда использовать?

Полифиллы следует использовать для решения проблем, когда мы хотим, чтобы браузеры реализовывали одни и те же функции по-разному.

Хватит, давайте сделаем один !!

Давайте создадим простой полифил sum () для массива, который вернет сумму всех элементов в массиве.

Объяснение:
Строка 5: Проверьте, есть ли у прототипа sum ().

Строка 6. Если sum () недоступен в прототипе, создайте функцию для Array.prototype.sum

Строка 7: вычислить и вернуть сумму. Доступ к массиву можно получить, используя «this».

Здесь необходимо обязательно использовать ключевое слово «функция» для создания функции. Стрелочные функции ES6 здесь не работают.

Давайте сделаем еще один полифилл, который принимает аргументы.

Полифилл для строки, который возвращается, если строка начинается с введенной вами буквы.

Чтобы узнать больше, вы можете начать здесь: https://developer.mozilla.org/en-US/docs/Glossary/Polyfill