#javascript #ecmascript-5
#javascript #ecmascript-5
Вопрос:
Есть ли где-нибудь проект JavaScript, который фокусируется на собственной нормализации ECMAScript 5 в обычных браузерах?
Для справки, нормализуем таблицу следующим образом: http://kangax.github.com/es5-compat-table /
Я знаю об обертках, которые добавляют некоторые функции ES5 и возвращаются к собственным реализациям, если они существуют. Но я не видел проекта, который фокусируется исключительно на собственной реализации и нормализации. Есть мысли?
Ответ №1:
Я бы очень рекомендовал прокладку ES5:
Комментарии:
1. @c69 Я рекомендую вам использовать это в производстве каждый день. Он стабилен, он надежен.
2. @Raynos я имею в виду .. несправедливо даже называть его «ES5 shim», потому что он реализует только дополнения к массиву,
.trim
, Date.now
и.toJSON
, которые являются довольно небольшим подмножеством ES5. (маленький, но очень полезный, хотя).3. @c69: вы просто не можете использовать все новые функции. Например
.freeze()
, or.seal()
и другие функции могут быть реализованы только очень дерьмово, напримерObject.create()
orObject.defineProperties()
. Однако вы, по крайней мере, можете создавать поля для всех из них, чтобы существующий код es5 не прерывался (если он не сильно зависит от результата)4. @c69 … Он настраивает все, что можно изменить. Если вы можете найти способы добавить больше, пожалуйста, внесите свой вклад
5. @Raynos: Я бы с этим не согласился. Разве он, например, просто «возвращает» исходный объект для
.freeze()
and.seal()
? Это вообще не прокладка, это просто полиполнение.
Ответ №2:
Я рекомендую вам использовать polyfills только для тех функций ES5, которые вы фактически используете в своем приложении, вместо того, чтобы включать дополнительную библиотеку, полную вещей, из которых вы будете использовать только некоторые фрагменты. YAGNI FTW. Стоит отметить, что некоторые функции ES5 «не поддаются настройке» в некоторых браузерах.
Ответ №3:
См http://www.mascaraengine.com / для другого подхода.