underscore и функция _()

Други! Подскажите, что делает функция _() в underscore с массивами?
Вроде как она врэппит массив, но во что? В коллекцию? Непонятно(
no image

Аноним

4 февраля, 16:38
509

Нет комментариев

Добавить комментарий
Вы не можете оставлять комментарии. Чтобы добавить комментарий, залогиньтесь или зарегистрируйтесь
Вы не можете голосовать. Чтобы проголосовать, залогиньтесь или зарегистрируйтесь

1 ответ

В Underscore каждый метод имеет кагбе два "стиля". ООП-"стиль" и функциональный "стиль". Хотя в данном случае это слишком сильно сказано, но так написано в документации. Суть в том, что стиль _(object) это объектный стиль. В действительности, он оборачивает объект с данными и позволяет на такой обёртке вызывать большинство методов underscore без первого параметра (без коллекции с данными). Но это действует на одну операцию, поэтому разницы, в действительности, немного.

Я ожидал от обёртки, что она позволит вызывать методы в цепочке. Однако, это не так. Такая возможность есть, но для этого надо вызывать метод chain. Он позволяет выполнять цепочки методов.

В настоящее время поддержка JS в обозревателях такова, что массивы уже имеют родные методы filter, map, reduce и другое, так что может сложиться впечатление, что обёртка _() вроде как позволяет цепочки, но это не так.

И ещё существует либа (LoDash, GitHub), совместимая на 95% с Underscore, которая в качестве дополнительной фичи вроде как позволяет вызывать цепочки при прямом вызове _(), но я не нашёл в коде тому подтверждения. Может быть я где-то ошибся.
Посмотрите код. Она ничего не делает. Ну, создает экземпляр класса, ну присваивает переменной _wrapped ваш массив. Всё.

no image

Аноним

4 февраля, 16:38

Нет комментариев

Добавить комментарий
Вы не можете отвечать на вопросы. Чтобы ответить на вопрос, пожалуйста залогиньтесь или зарегистрируйтесь
Работа в Украине
Вакансии от WORK.ua
Scala, Akka Developer
Харьков, Murka
Web-дизайнер, 10000 грн.
Ужгород, Би-Хеппи
​IТ-эксперт, 6000 грн.
Днепр, Comfy
ІТ-специалист, 6000 грн.
Запорожье, БыстроЗайм
Программист 1С 8
Киев, Ерідон, МПП
Middle PHP developer
Житомир, SphereMall
WebUI Technical Lead
Львов, SoftServe
Контент-менеджер, 9000 грн.
Киев, Европа уно трейд Украина, ООО
Senior Business Process Analyst
Львов, Intellias