是否有任何优秀的underscore.js替代方案可以扩展核心js类?

时间:2013-11-06 04:00:53

标签: javascript syntax underscore.js

我发现_.something(somevar, some_function_or_other_thing);“语法”非常难看。什么是使用类似ruby的迭代器和类似东西的一些好的替代品:

10..times(function(i) {
   console.log(i);
});

uppercasefoobar = ["foo", "bar"].each(function(i) {
    return i.toUpperCase();
});

另外,我使用的是node.js,因此它应该更多地关注代码而不是DOM的东西。

3 个答案:

答案 0 :(得分:5)

没有人提到Lo-Dash。 Lo-Dash是Underscore的超集,添加了许多方法。 John-David Dalton(Lo-Dash的创建者)解释了两个图书馆在回答SO问题here时的主要差异。

编辑找到了详细的博文"Say hello to Lo-Dash",详细介绍了该库的背景以及与其他所谓的'js实用工具带的比较。

答案 1 :(得分:3)

看起来你正在寻找Array.prototype.map

uppercasefoobar = ["foo", "bar"].map(function(i) {
    return i.toUpperCase();
});
// uppercasefoobar == ["FOO", "BAR"]

使用underscore.js你也可以写:

_.range(10).forEach(function(i) {
    console.log(i);
});

修改您还可以使用:

_(3).times(function(i) {
    console.log(i);
});

不像ruby语法那么漂亮,但它完成了工作。

通常,下划线提供了大多数函数的面向对象的版本,其中:

_.something(variable, params);

相当于

_(variable).something(params);

答案 2 :(得分:2)

自己找到一个! http://sugarjs.com/

(是的,我确实意识到扩展本地类本质上是用语言...这是我的动机......)

相关问题