查看: 3537|回复: 1

[已经解决] MV 没有clone? 如何克隆一个object

[复制链接]
梦石
0
星屑
1816
在线时间
2527 小时
注册时间
2010-10-12
回帖
1336

开拓者

发表于 2016-3-7 02:58:14 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 刺夜之枪 于 2016-3-6 14:12 编辑

如题,
在下打算clone一下$gameMap
然而查阅了一些资料好像JS不能直接克隆

评分

参与人数 2赞 +2 收起 理由
玛尔斯 + 1
众神与将军 + 1

查看全部评分


…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2016-3-7 06:26:29 | 显示全部楼层
本帖最后由 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/

点评

不懂你们鲁大师  发表于 2016-3-7 11:42

评分

参与人数 2星屑 +180 梦石 +1 收起 理由
余烬之中 + 1 认可答案瞄
刺夜之枪 + 180 认可答案瞄

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部