如何在链中使用underscore.string reverse()?

时间:2012-02-13 19:54:52

标签: javascript underscore.js chaining

我正在使用下划线和下划线.string与函数.reverse()存在冲突,因为它们都有一个具有相同名称的函数。

为避免冲突,我们需要使用_.str,如下所示:

_.str.reverse("foobar"); //.reverse("foobar") won't work

但是,不知道如何在链中使用underscore.string的.reverse()

我尝试了以下内容:

var something=_.chain("hello world!")
        .capitalize()
        //_.str
        //_.str()
        //.str
        //.str()
        .reverse()
        .value();

但是不要工作......有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您可以使用_.mixin_.str.reverse函数添加到下划线对象,使用其他名称,这样它就不会与数组的反向冲突:

_.mixin({strReverse: _.str.reverse});
var something = _.chain("hello world!").capitalize().strReverse().value();
console.log(something); // logs "!dlrow olleH"

当然是JSFiddle demo

请注意,执行该操作后strReverse也可以在下划线对象中访问:

console.log(_('hello').strReverse()); // logs "olleh"

答案 1 :(得分:0)

capitalize()返回的对象必须支持链中的下一个方法,但事实并非如此。认为你可以通过链内的名称以某种方式引用另一个对象的方法是错误的。它根本不起作用。简而言之,你需要以另一种方式解决这个问题。