与BackboneJS一起使用时,我应该使用与Underscore兼容的Lo-Dash版本吗?

时间:2013-06-20 21:39:21

标签: javascript backbone.js underscore.js lodash

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

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

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

3 个答案:

答案 0 :(得分:10)

[edit] 根据使用lodash一段时间后的个人经验,我发现这些差异并不算太大。我建议你使用正常构建,但如果你不想冒任何风险,请使用compat构建。


要知道答案,请参阅此Wiki页面,该页面总结了下划线Lo-Dash构建与普通Lo-Dash之间的差异:

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

Underscore构建(包括作为Underscore构建子集的B​​ackbone构建)

  • Lo-Dash的直观链接被Underscore的显式链接样式取代如果您想使用它,_.chain方法仍然存在。
  • 如果回调返回false,则_.each方法不会提前退出
  • _.defaults_.extend方法迭代源对象的继承属性
  • _.contains_.omit_.pick_.template
  • 等方法中删除了其他功能

答案 1 :(得分:9)

我通常建议首先尝试Lo-Dash。如果您遇到问题,可以退回到Underscore compat构建版。这适用于新项目或已经使用下划线并希望更改的项目。

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

答案 2 :(得分:3)

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

我开始使用lodash只是因为,我读过lodash有更好的表现。我相信,你会发现,如果你google下划线vs lodash表现。到目前为止,我还没有看到lodash中缺少任何功能。

无论如何,我有幸将其改回使用Underscore,在“Require”配置文件中使用一行代码更改......