js对象赋值

1,325 阅读1分钟

在联调后端接口中,常会涉及到对对象的处理,这里先简单介绍一下关于js对象赋值的相关操作,后续关于对象的处理会再次进行更新的~

常用场景

1. 含有相同的键进行赋值

Object.keys(obj)

2. 复制对象(遍历复制)

for(var i in obj){}

3. 复制对象(直接赋值)

= 会使得新对象变化的时候,原对象也会改变 ==> 浅拷贝

**深拷贝:相当于克隆羊。基本数据类型和所指向的对象都会进行复制,内部实际指向的不是一个对象,所以在做修改时,两者不会同时改变。
**浅拷贝:只会拷贝基本数据类型的值和实际的引用类型,实际上指向还是同一个对象,对基本类型的修改,原对象也会修改

4. Object.assign() 拷贝对象(深拷贝,但没完全深)

发现:

  • Object.assign(obj) ==> 浅拷贝
  • Object.assign({},obj) ==> 只有第一层是深拷贝

5. JSON.parse(JSON.stringify(obj)) 场景限制:obj属性不能是function,RegExp等,JSON序列化会造成属性丢失