You don't know js(up & going)


Полифиллинг (polyfilling)


Download 424.95 Kb.
Pdf ko'rish
bet44/53
Sana08.11.2023
Hajmi424.95 Kb.
#1757840
1   ...   40   41   42   43   44   45   46   47   ...   53
Bog'liq
You don\'t know JS(up & going)

Полифиллинг (polyfilling)
Слово "polyfill", введенный Реми Шарпом термин
(https://remysharp.com/2010/10/08/what-is-a-polyfill), означает определение новой
функции с помощью кода, реализующего эквивалентное поведению, но с
возможностью запуска в более старых окружениях JS.
Например, ES6 определяет функцию, называемую `Number.isNaN ..)`, для
обеспечения точной, безошибочной проверки на значения `NaN`, отменяя
устаревшую первоначальную функцию `isNaN ..)`. Но очень легко заполифиллить
новую функцию, с целью пользования ею в вашем коде независимо от того,
поддерживает браузер ES6 или нет.
Пример:
____________________________________________________________________
if !Number.isNaN {
Number.isNaN = function isNaN(x) {
return x !
x;
};
}
____________________________________________________________________
Оператор `if` защищает против применения полифильного определения в
браузерах, поддерживающих ES6 синтаксис. Если же функция не существует, то
мы определяем `Number.isNaN ..)`.
**Примечание:** Проверка, которую мы тут выполняем, использует
преимущество причудливости значения `NaN`, которое заключается в том, что
оно является единственным не равным самому себе значением во всем языке.
Поэтому значение `NaN` — единственное, делающее условие `x !
x`
`истинным`.
Не все новые функции возможно полностью заполифиллить. Зачастую большая
часть поведения может быть сполифиллена, хотя есть и небольшие отступления.
Вы должны быть очень, очень осторожны, реализовывая полифиллинг
самостоятельно; следите за тем, чтобы придерживаться спецификации настолько
строго, насколько возможно.


А лучше используйте уже проверенный набор полифиллов, которому вы можете
доверять, вроде тех, что предоставляются ES5 Shim
(https://github.com/es-shims/es5-shim) и ES6 Shim
(https://github.com/es-shims/es6-shim).

Download 424.95 Kb.

Do'stlaringiz bilan baham:
1   ...   40   41   42   43   44   45   46   47   ...   53




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling