我有以下代码:
function doSomething(str){
return str+="a";
}
function anotherFunction(str){
return str+="b";
}
_.mixin({
doSomething:doSomething,
anotherFunction:anotherFunction
});
我想在一行中一起使用多个功能,但我无法工作:
var output=_("startingtext").doSomething().anotherFunction();
我设法使用_.chain
使其工作,但我不确定是否应该使用链,因为在example他们正在使用对象和东西,所以我真的怀疑这是方式去做字符串操作。
对不起,我是新来的下划线:(,任何帮助表示赞赏。
答案 0 :(得分:1)
_.chain()
正是要走的路。
在Javascript中,一切是一个对象。包括一个字符串。你是第一次做得对。 _.chain()
将您的字符串包装在一个对象中,该对象可以通过调用value()在最后传递,链式和解包。
答案 1 :(得分:0)
一个选项是用_()
包装返回值,并在链的末尾调用.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
不是我最喜欢的选择。
this question中接受的答案有另一种选择,但最后仍需要致电.value()
。如果你真的想摆脱它,你必须在String.prototype