感谢各位,还是json好用
function copyObject(obj) {
return JSON.parse(JSON.stringify(obj));
}
1
gzlock 2017-05-13 15:34:40 +08:00 via Android 1
两种办法
json.parse(json.stringify({})) Object.assign({},原 object) |
2
gongpeione 2017-05-13 15:39:57 +08:00 1
var obj2 = Object.create(obj1);
这样也可以,虽然不算是复制了 |
3
murmur 2017-05-13 15:50:04 +08:00 1
Object.assign 貌似是浅拷,npm 上有递归深拷的包,当然没有 function 的时候最好的就是先 stringify 再 parse
|
4
crysislinux 2017-05-13 15:54:58 +08:00 via Android
修改的时候就全用 assign,slice 之类的不改变原 object 的方式
|
5
ioioioioioioi OP |
6
Sivan 2017-05-13 16:09:20 +08:00
|
7
gzlock 2017-05-13 16:24:22 +08:00
|
8
SourceMan 2017-05-13 18:10:43 +08:00 via iPhone
json 性能有点差
|
9
crysislinux 2017-05-13 18:11:32 +08:00 via Android
@ioioioioioioi 有专门的包解决这个问题。大概是叫 immutability-helper 吧,最早是 react 的包,独立出来了
|
10
ruanyu1 2017-05-13 18:15:41 +08:00
o2 = {...o1}
|
11
seki 2017-05-13 18:17:00 +08:00
如果是单纯数据的话序列化和反序列化也足够了,lodash 也有 clone 方法
vue 中的 immutability 的重要性倒不是这么高 |
12
huihuimoe 2017-05-13 18:24:08 +08:00 via Android
|
13
wangjie 2017-05-13 19:09:42 +08:00
lodash +1
|