我注意到Lo-Dash有一个特殊的Underscore兼容版本,表面上是为了解决函数参数/操作的差异(因为Lo-Dash是Underscore的超集,我假设Lo-Dash没有缺少Underscore函数)
我也注意到BackboneJS可以与Underscore或Lo-Dash一起使用。
我的问题:使用BackboneJS的“正常”Lo-Dash构建是不明智的吗?我无法找到人们是否在野外这样做的任何迹象,但这似乎是一个坏主意,特别是如果BackboneJS依赖于这些构建中可能不同的功能。同时,在Lo-Dash中使用一些较新的函数会很好,所以如果没有必要,我不想错过这些函数。
答案 0 :(得分:10)
[edit] 根据使用lodash一段时间后的个人经验,我发现这些差异并不算太大。我建议你使用正常构建,但如果你不想冒任何风险,请使用compat构建。
要知道答案,请参阅此Wiki页面,该页面总结了下划线Lo-Dash构建与普通Lo-Dash之间的差异:
https://github.com/lodash/lodash/wiki/build-differences
_.chain
方法仍然存在。_.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”配置文件中使用一行代码更改......