Подчеркни, используя несколько функций в одной строке - PullRequest
1 голос
/ 31 января 2012

У меня есть следующий код:

function doSomething(str){
    return str+="a";
}

function anotherFunction(str){
    return str+="b";
}

_.mixin({
    doSomething:doSomething,
    anotherFunction:anotherFunction
});

Я хочу использовать несколько функций вместе в одной строке, но мне не удается работать:

var output=_("startingtext").doSomething().anotherFunction();

Мне удалось заставить его работать, используя _.chain, но я не уверен, должна ли использоваться цепочка, потому что в их примере они используют с объектами и прочим, поэтому я действительно сомневаюсь, что это способпойти на манипуляции со строками.

Извините, я новичок, чтобы подчеркнуть :(, любая помощь приветствуется.

Ответы [ 2 ]

1 голос
/ 01 февраля 2012

_.chain() - это именно то, что нужно.

В Javascript все является объектом.Включая строку.Вы делали это правильно с первого раза._.chain() оборачивает вашу строку в объект, который может быть передан вперед в стиле цепочки и распакован в конце с вызовом value ().

0 голосов
/ 01 февраля 2012

Можно заключить в возвращаемое значение _() и вызвать .value() в конце цепочки:

function a(v) {
    return _(v + 'a');
}

function b(v) {
    return _(v + 'b');
}

_.mixin({a:a, b:b});
_('some-text').a().b().value(); // returns some-textab

Не мой любимый вариант.

принятый ответ в этот вопрос имеет альтернативу, но ему все равно нужно позвонить .value() в конце.Если вы действительно хотите избавиться от этого, вам нужно добавить функции к String.prototype

...