一个必用的javascript框架:underscore.js - wine的思考 - ITeye技术网站
上篇文章(http://cavenfeng.iteye.com/admin/blogs/1551516)粗略介绍了移动应用框架的搭建,其中,有一个比较重要的库:underscore.js
Underscore是一个非常实用的JavaScript库,提供许多编程时需要的功能的支持,他在不扩展任何JavaScript的原生对象的情况下提供很多实用的功能。
创造一个小而美的公司非常值得尊敬,小而美的框架同样散发着那样的令人着迷的魅力。
无论你写一段小的js代码,还是写一个大型的HTML5应用,underscore都能帮上忙。目前,underscore已经被广泛使用,例如,backbone.js唯一强依赖的库就是underscore.js
- 代码行数1000来行
- 包含60多个独立的函数
- 提供完整的测试用例集合 http://documentcloud.github.com/underscore/test/test.html
- 提供带注释的源码 http://documentcloud.github.com/underscore/docs/underscore.html(这个代码注释很Cool哦,谁知道是怎么做出来的?)
- 项目代码在GitHub上:http://github.com/documentcloud/underscore/
Underscore提供的60多个函数:
http://www.css88.com/doc/underscore/
Collections(集合)
each, map, reduce, reduceRight, find, filter, reject, all, any, include, invoke,pluck, max, min, sortBy, groupBy, sortedIndex, shuffle, toArray, sizeArrays(数组)
first, initial, last, rest, compact, flatten, without, union, intersection,difference, uniq, zip, indexOf, lastIndexOf, rangeFunctions(函数)
bind, bindAll, memoize, delay, defer, throttle, debounce, once, after, wrap,composeObjects(对象)
keys, values, functions, extend, defaults, clone, tap, isEqual, isEmpty,isElement, isArray, isArguments, isFunction, isString, isNumber, isBoolean,isDate, isRegExp, isNaN, isNull, isUndefinedUtility(功能)
noConflict, identity, times, mixin, uniqueId, escape, template
具体每个函数的用途,你可以看上面中文的文档(翻译的不是太好),也可以看http://underscorejs.org/