我创建Lo-Dash的目的是为数组,字符串,对象和
arguments对象1提供更一致的跨环境迭代支持。此后,它已成为Underscore的超集,提供更一致的API行为,更多功能(如AMD支持,深度克隆和深度合并),更全面的文档和单元测试(在Node,Ringo,Rhino,Narwhal,PhantomJS中运行的测试)和浏览器),从而为大型阵列/对象迭代提供更好的整体性能和优化,并通过自定义版本和模板预编译实用程序提供更大的灵活性。
由于Lo-Dash的更新频率比Underscore更新的频率高,因此提供了一个
lodashunderscore构建以确保与最新稳定版本的Underscore兼容。
有一次我什至获得了推送到Underscore的权限,部分原因是Lo-
Dash负责提出30多个问题。Underscore v1.4.x +中的着陆错误修复,新功能和性能提升。
此外,至少有3个Backbone样板默认包含Lo-
Dash,而Backbone的官方文档中现在提到了Lo-Dash 。
查看Kit Cambridge的帖子,向Lo-Dash说“你好”,以深入了解Lo-Dash和Underscore之间的区别。
脚注:
- 下划线对数组,字符串,对象和
arguments
对象的支持不一致。在较新的浏览器中,Underscore方法将忽略数组中的孔,“ Objects”方法将迭代arguments
对象,将字符串视为类似于数组的方法,并且方法将正确地迭代函数(忽略其“ prototype”属性)和对象(迭代阴影的属性,例如“toString”和“valueOf”),而在较旧的浏览器中则不会。同样,下划线方法(例如)_.clone
保留数组中的孔,而其他方法_.flatten
则不保留。



