21

我注意到 Lo-Dash 有一个特殊的 Underscore 兼容版本,表面上是为了解决函数参数/操作的差异(因为 Lo-Dash 是 Underscore 的超集,我假设 Lo-Dash 中没有缺少 Underscore 函数)。

我还注意到 BackboneJS 可以与 Underscore 或 Lo-Dash 一起使用。

我的问题:将 Lo-Dash 的“正常”构建与 BackboneJS 一起使用是不明智的吗?我找不到任何迹象表明人们是否在野外这样做,但这似乎是个坏主意,特别是如果 BackboneJS 依赖于这些构建中可能不同的功能。同时,在 Lo-Dash 中使用一些较新的功能会很好,所以如果没有必要,我不想错过这些功能。

4

3 回答 3

10

[edit]从个人使用 lodash 一段时间后的经验来看,我发现差异不是太大。我建议您使用普通版本,但如果您不想冒任何风险,请使用兼容版本。


要知道答案,请参阅此 wiki 页面,该页面总结了下划线 Lo-Dash 构建和普通 Lo-Dash 之间的区别:

https://github.com/lodash/lodash/wiki/build-differences

Underscore 构建(包括 Backbone 构建,它是 Underscore 构建的子集)

  • Lo-Dash 的直观链接被 Underscore 的显式链接样式取代_.chain如果您想使用它,该方法仍然存在。
  • 如果回调返回 false,该_.each方法不会提前退出
  • _.defaultsand_.extend方法迭代源对象的继承属性
  • _.contains从, _.omit,_.pick和等方法中删除了额外的功能_.template
于 2013-08-22T12:33:31.803 回答
9

我通常建议先尝试 Lo-Dash。如果您有问题,您可以返回到 Underscore 兼容版本。这适用于新项目或那些已经使用下划线并想要更改的项目。

您还可以利用构建实用程序并说创建一个使用下划线链接样式的 Lo-Dash 版本,例如lodash -d plus=chain.

于 2013-08-25T17:35:42.020 回答
3

我个人使用 require.js 来加载下划线/lodash。因此,只要我使用 AMD 传递“_”,在我的应用程序主干中就不知道它是下划线还是 lodash。

我开始使用 lodash 只是因为,我读到 lodash 有更好的性能。我敢肯定,如果你用谷歌下划线与 lodash 性能对比,你会发现。到目前为止,我还没有看到 lodash 中缺少任何功能。

无论如何,我有幸将它改回使用下划线,并在“要求”配置文件中更改一行代码......

于 2013-06-20T23:06:49.030 回答