Подтвердить что ты не робот

Должен ли я использовать Underscore-совместимую сборку Lo-Dash при ее использовании с BackboneJS?

Я заметил, что Lo-Dash имеет специальную сборку Underscore, якобы предназначенную для устранения различий в аргументах/операциях функций (поскольку Lo-Dash является надмножеством Underscore, я полагаю, что в Lo-Dash отсутствуют функции Underscore).

Я также заметил, что BackboneJS можно использовать с Underscore или Lo-Dash.

Мой вопрос: было бы неразумно использовать "нормальную" сборку Lo-Dash с BackboneJS? Я не могу найти никаких признаков того, делают ли люди это в дикой природе, но это кажется плохой идеей, особенно если BackboneJS полагается на функции, которые могут быть разными в этих сборках. В то же время было бы неплохо использовать некоторые из более новых функций в Lo-Dash, поэтому я не хотел бы пропускать их, если это не обязательно.

4b9b3361

Ответ 1

[edit] Из личного опыта после использования lodash в течение довольно долгого времени, я нахожу, что различия не слишком большие сделки. Я бы предложил вам использовать обычную сборку, но если вы не хотите рисковать, перейдите в сборку compat.


Чтобы узнать ответ, см. эту страницу wiki, в которой суммируются различия между строкой Lo-Dash подчёркивания и простой Lo-Dash:

https://github.com/lodash/lodash/wiki/build-differences

Создание подстроки (включает в себя сборку Backbone, которая является подмножеством сборки Underscore)

  • Интуитивно понятная цепочка Lo-Dashs заменяется стилем явного цепочки Underscores Метод _.chain все еще существует, если вы хотите его использовать.
  • Метод _.each не выходит раньше, если обратный вызов возвращает false
  • Метод _.defaults и _.extend перебирает унаследованные свойства исходных объектов
  • Дополнительные функции удаляются из таких методов, как _.contains, _.omit, _.pick и _.template

Ответ 2

Обычно я рекомендую попробовать Lo-Dash как первый. Если у вас есть проблемы, вы можете вернуться к сборке Underscore. Это касается новых проектов или тех, которые уже используют Underscore и хотят изменить.

Вы также можете использовать утилиту сборки и сказать, что создайте версию Lo-Dash, которая использует стиль цепочки Underscore с чем-то вроде lodash -d plus=chain.

Ответ 3

Я лично использую require.js для загрузки underscore/lodash. Таким образом, в моем приложении базовая система не знает, является ли это подчеркиванием или lodash, пока я передаю "_" с помощью AMD.

Я начал использовать lodash только потому, что, я читал lodash, имеет лучшую производительность. Я уверен, вы обнаружите, что если вы используете Google underscore против производительности lodash. До сих пор я не видел никаких недостающих функций в lodash.

В любом случае у меня есть возможность изменить его обратно, чтобы использовать Underscore с одной строкой изменения кода в файле конфигурации "Требовать"...