【问题标题】:ES6 equivalent to lodash _.clone (lodash failing to clone ES6 Proxy)ES6 等效于 lodash _.clone(lodash 无法克隆 ES6 代理)
【发布时间】:2016-07-06 03:35:48
【问题描述】:

我正在重构一些代码以利用一些 ES6 特性。我遇到的一件事是 lodash 和将 _.clone 应用于 es6 代理的问题。我想知道是否有 es6 等效于 lodash 提供的克隆方法。我的搜索没有出现任何结果。

谢谢。

【问题讨论】:

  • 看起来答案是“Object.assign”。
  • 请注意Object.assign 不会进行深度克隆。
  • 没错,就是像_.clone方法@sma这样的浅拷贝
  • 很大程度上取决于代理是否以及如何克隆。请向我们展示一些不适用于 lodash 的示例代码。
  • 另请注意,Object.assign 仅适用于像 {} 这样的普通对象。

标签: javascript ecmascript-6 underscore.js lodash


【解决方案1】:

使用 ES6 Object.assign 出现是 _.clone 的替代品。

var obj = { a: 1 };
var copy = Object.assign({}, obj);
console.log(copy); // { a: 1 }

它似乎也成功克隆了一个 ES6 代理,对此 lodash 失败并返回“未定义”。

【讨论】:

  • 对我来说,lodash (4.17.4) 没有返回undefined,而是代理对象的克隆。仍然失去代理。而且我需要深度克隆(因为对象包含对象作为属性),所以Object.assign 对我不起作用。
猜你喜欢
  • 2018-12-25
  • 1970-01-01
  • 2018-09-27
  • 2021-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多