为什么有人更喜欢Lodash或Undercore.js实用程序库而不是另一个?
Lodash似乎是下划线的替代品,后者已经存在了更长的时间。
我认为两者都很出色,但我对它们的工作原理了解不足,无法进行有意义的比较,我想了解更多的差异。
为什么有人更喜欢Lodash或Undercore.js实用程序库而不是另一个?
Lodash似乎是下划线的替代品,后者已经存在了更长的时间。
我认为两者都很出色,但我对它们的工作原理了解不足,无法进行有意义的比较,我想了解更多的差异。
当前回答
我只是发现了一个对我来说很重要的区别。Lodash的_.extend()的非Underscore.js兼容版本不复制类级别定义的财产或方法。
我在CoffeeScript中创建了一个Jasmine测试,演示了这一点:
https://gist.github.com/softcraft-development/1c3964402b099893bd61
幸运的是,lodash.underscore.js保留了Undercore.js复制所有内容的行为,这对我来说是理想的行为。
其他回答
我只是发现了一个对我来说很重要的区别。Lodash的_.extend()的非Underscore.js兼容版本不复制类级别定义的财产或方法。
我在CoffeeScript中创建了一个Jasmine测试,演示了这一点:
https://gist.github.com/softcraft-development/1c3964402b099893bd61
幸运的是,lodash.underscore.js保留了Undercore.js复制所有内容的行为,这对我来说是理想的行为。
他们非常相似,Lodash正在接手。。。
它们都是一个实用程序库,在JavaScript中占据了实用程序的世界。。。
看来Lodash现在更新得更频繁了,所以在最新的项目中使用得更多了。。。
此外,洛达什似乎比几位KBs更轻。。。
两者都有很好的API和文档,但我认为Lodash更好。。。
下面是获取数组第一个值的每个文档项的屏幕截图。。。
Undercore.js:
Lodash公司:
由于事情可能会不时更新,只需查看他们的网站。。。
洛达什牌手表
下划线.js
我同意这里所说的大部分内容,但我只想指出一个支持Undercore.js的论点:库的大小。
特别是如果您正在开发一个主要用于移动设备的应用程序或网站,那么生成的捆绑包的大小以及对启动或下载时间的影响可能会起到重要作用。
为了进行比较,这些大小是我在运行Ionic服务后在源地图浏览器中注意到的大小:
Lodash: 523 kB
Underscore.js: 51.6 kB
可以使用BundlePhobia检查Lodash和Undercore.js的当前大小。
本·麦考密克(Ben McCormick)的《Undercore vs Lo Dash》(Undercore vs Lo Dash)是最新一篇将两者进行比较的文章:
Lodash的API是Undercore.js的超集。
在幕后,洛达什被彻底改写了。
Lodash绝对不会比Undercore.js慢。
Lodash补充了什么?
可用性改进额外功能性能提升链接的速记语法自定义生成以仅使用所需内容语义版本控制和100%代码覆盖率
Lodash获得了_.mapValues(),它与Undercore.js的_.mapObject()相同。