1
2
3
const obj1 = {a : 1, b : 2};
const obj2 = Object.assign({}, obj1);
console.log(obj2); //{ a: 1, b: 2 }
1
2
3
const obj1 = {a : 1, b : 2};
const obj2 = {...obj1};
console.log(obj2); //{ a: 1, b: 2 }
1
2
3
4
5
6
7
8
9
const obj1 = {a:1,b:2,c:{d:4}};
const obj2 = {};

for (const key in obj1) {
if(obj1.hasOwnProperty(key)){// for in 会遍历原型上的属性,所以需要判断是否为自身的属性
obj2[key] = obj1[key];
}
}
console.log(obj2); //{ a: 1, b: 2, c: { d: 4 } }
1
2
3
4
5
6
7
const obj1 = {a:1,b:2,c:{d:4}};
const obj2 = {}

Object.keys(obj1).forEach(key => {
obj2[key] = obj1[key];// Object.keys()只会遍历对象自身的可枚举属性,所以不需要判断是否为自身的属性
})
console.log(obj2); //{ a: 1, b: 2, c: { d: 4 } }