【问题标题】:Object.assign vs lodash _.assignObject.assign 与 lodash _.assign
【发布时间】:2016-05-09 18:58:15
【问题描述】:

查看ES6 Object.assign 的文档 和Lodash _.assign 看起来这些功能完全相同。

这是正确的理解吗?还是我错过了什么?

【问题讨论】:

  • 当然,它们旨在做同样的事情。我能看到的唯一区别是Object.assign 将原始值转换为对象,而_.assign 没有(例如,Object.assign("hello", { foo: 1 })
  • 最好的方法是学习theirsources。然而,在 lodash 的情况下,这有点复杂,因为它确实会随着版本的不同而变化——changelog 甚至提到了行为上的差异。
  • 感谢@apsillers!这是一个很大的区别。如果您想写一个答案,我会支持您的回复。
  • 对比 angular.copy()。我想我会为了好玩而把它扔进去。

标签: ecmascript-6 lodash


【解决方案1】:

取决于浏览器。根据 lodash 文档:

使 _.assign 在可用时使用内置的 Object.assign。

您可以到这里获取浏览器支持:

IE 基本上不支持,所以在这种情况下使用 lodash 的代码

MDN Docs on Object.assign

【讨论】:

  • 对不起,我应该更清楚。我意识到有些浏览器还不支持 Object.assign。我想知道,对于那些同时提供两者的环境,两者之间有区别吗?
  • lodash 遵循浏览器,所以不,在这种情况下使用本机实现
  • 啊!对不起!我误读了你的答案。我现在明白你在说什么(lodash 本身在可用时使用 Object.assign,这听起来好像 lodash 作者不打算在两者之间有任何区别)。很有帮助。谢谢@JordanHendrix!
  • 没问题!是的,就是这样,对于 Object.assign
猜你喜欢
  • 2017-02-10
  • 2023-03-23
  • 2019-08-22
  • 2016-07-18
  • 2021-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多