Underscore is a
utility-belt library for JavaScript that provides a lot of the
functional programming support that you would expect in
Prototype.js
(or Ruby),
but without extending any of the built-in JavaScript objects. It's the
tie to go along with jQuery's tux,
and Backbone.js's suspenders.
Underscore provides 60-odd functions that support both the usual
functional suspects: map, select, invoke —
as well as more specialized helpers: function binding, javascript
templating, deep equality testing, and so on. It delegates to built-in
functions, if present, so modern browsers will use the
native implementations of forEach, map, reduce,
filter, every, some and indexOf.
A complete Test & Benchmark Suite
is included for your perusal.
You may also read through the annotated source code.
The project is
hosted on GitHub.
You can report bugs and discuss features on the
issues page,
on Freenode in the #documentcloud channel,
or send tweets to @documentcloud.
Underscore is an open-source component of DocumentCloud.