Underscore.js: как связать пользовательские функции

Используя Underscore.js , я могу напишите следующее, которое возвращает 42 :

_([42, 43]).chain()
    .first()
    .value()

У меня есть настраиваемая функция, не являющаяся частью Underscore.js, которая называется double () :

function double(value) { return value * 2; };

Я хотел бы иметь возможность вызывать это в цепочке Underscore, как если бы она была частью Underscore. Я хотел бы написать следующее, которое я хочу вернуть 84 :

_([42, 43]).chain()
    .first()
    .double()
    .value()

Это не может работать, поскольку Underscore не определяет double () . Я мог бы использовать tap () как в:

_([42, 43]).chain()
    .first()
    .tap(double)
    .value()

Это верно, но tap применяет функцию к своему аргументу и возвращает аргумент, а не результат функции. Так что мне кажется, что мне понадобится своего рода тап , который возвращает результат функции, примененной к ее аргументу. Есть ли что-нибудь подобное в Underscore.js? Мне не хватает чего-то ужасно очевидного?

22
задан Paul D. Waite 11 November 2010 в 14:39
поделиться