js是函数式编程语言. 支持高阶函数和闭包.函数式编程非常强大.可以写出非常简洁的代码.

Array 有 map()和filter()方法, 但是 object 没这些方法.  解决办法: 找成熟的第三方开源库, 使用统一的函数来实现 map(), filter() 这些操作.

这个第三方库就是 underscore.

jquery 统一了不同浏览器之间的DOM操作的差异. underscore 则提供了一套完整的 函数式编程的接口. 更方便的在js中实现函数式编程

jquery 加载时.会把 自身绑定到唯一的全局变量 $上. underscore 加载时.会把 自身绑定到唯一的全局变量 _上. 这也是为什么名字叫 underscore 下划线.

用underscore 实现 map() _.map([1, 2, 3], (x) => x * x); // [1, 4, 9]

咋一看比直接用Array.map()要麻烦一点,可是underscore的map()还可以作用于Object: _.map({ a: 1, b: 2, c: 3 }, (v, k) => k + ‘=’ + v); // [‘a=1’, ‘b=2’, ‘c=3’]

接下去的部分 没看. 以后看.

http://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/001450372452505599881a3debd4becbe1591a94950fbb8000