Прим. переводчика: underscore.js — одна из самых известных и любимых javascript-библиотек. Но мало кто знает, что есть её более удачный клон. В одном из своих проектов мы без каких-либо проблем перешли на него и теперь решили познакомить с ним других читателей Хабрахабра.
Lo-Dash — это полноценная замена* для Underscore.js. Lo-dash имеет более высокую производительность, избавлен от некоторых багов underscore и даёт некоторые новые возможности.
![](https://habrastorage.org/r/w1560/storage2/48f/3eb/821/48f3eb8216f7ecfe03af1b5418d2f3b3.png)
Поддержка индивидуальных сборок позволяет легко создавать облегчённые версии Lo-Dash, содержащие только необходимые вам методы. Также Lo-Dash поддерживает за вас зависимости методов и псевдонимы.
и т.д.
Lo-Dash — это полноценная замена* для Underscore.js. Lo-dash имеет более высокую производительность, избавлен от некоторых багов underscore и даёт некоторые новые возможности.
![](https://habrastorage.org/storage2/48f/3eb/821/48f3eb8216f7ecfe03af1b5418d2f3b3.png)
Новые возможности:
- Поддержка AMD-загрузчиков (RequireJS, curl.js, etc.)
_.clone
поддерживает “глубокое” клонирование_.forEach
поддерживает текучий интерфейс и остановку итерирования_.forIn
для итерирования по собственным и унаследованным свойствам объектов_.forOwn
для итерирования только по собственным свойствам объекта_.isPlainObject
проверяет, было ли значение создано с помощью конструктораObject
_.lateBind
для позднего связывания_.merge
— “глубокий” аналог_.extend
_.partial
для карринга без связыванияthis
_.pick
и_.omit
принимают аргументыcallback
иthisArg
_.template
использует sourceURLs для более простой отладки_.contains
,_.size
,_.toArray
, и т.д.… принимают и строки тоже
Индивидуальные сборки
Поддержка индивидуальных сборок позволяет легко создавать облегчённые версии Lo-Dash, содержащие только необходимые вам методы. Также Lo-Dash поддерживает за вас зависимости методов и псевдонимы.
- Сборка, содержащая всё необходимое для работы Backbone, может быть создана с модификатором
backbone
.
lodash backbone
- Content Security Policy сборка.
lodash csp
- Сборка для старых браузеров без поддержки ES5.
lodash legacy
- Сборки для мобильных платформ, без баг-фиксов для IE < 9 и компиляции методов.
lodash mobile
- Strict-сборки, с использованием strict mode для
_.bindAll
,_.defaults
, and_.extend
.
lodash strict
- Underscore-сборка, для тех, кто уже используется Underscore в своих проектах.
lodash underscore
и т.д.
Куда пойти, куда податься?
- Lo-Dash на Github
- Установка Lo-Dash
- Документация API
- Бенчмарки + еще бенчмарки на jsPerf.com (в моём случае дают ускорение в 1.75 раз)
- Юнит-тесты