Project1

标题: MV 没有clone? 如何克隆一个object [打印本页]

作者: 刺夜之枪    时间: 2016-3-7 02:58
标题: MV 没有clone? 如何克隆一个object
本帖最后由 刺夜之枪 于 2016-3-6 14:12 编辑

如题,
在下打算clone一下$gameMap
然而查阅了一些资料好像JS不能直接克隆
作者: taroxd    时间: 2016-3-7 06:26
本帖最后由 taroxd 于 2016-3-7 07:05 编辑

深拷贝的话:
  1. JSON.parse(JSON.stringify(obj))
复制代码
但这个方法不能处理形成环的对象。

浅拷贝的话:
  1. array.slice()
  2. Object.assign({}, obj)
复制代码
Object.assign 在现在的 MV 版本中还没有支持,但是这里有 Polyfill:https://developer.mozilla.org/en ... jects/Object/assign
Object.assign 本身也是个非常好用的函数。

使用  lodash 库的话,可以用 _.clone 和 _cloneDeep (你也可以直接把那两个函数的源代码抄过来用)。这两个方法的实现是很完善的,效率很高,对成环的对象也有考虑。
详情见:https://lodash.com/




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1