
Obejct.assign();
Object.keys();
Object.values();
Object.entries();
객체의 할당된 주소값을 복사하기 때문에 수정 시 원본의 영향을 줌
const user = { name : "jackson", age : 10 } const userClone = user; //얕은 복사 userClone.name = "mike console.log(user.name) // "mike"
객체 자체를 복사하기 때문에 별개의 주소값으로 인식하여 복사한 객체를 수정하더라도 원본의 영향이 없음
const userClone2 = Object.assign({}, user); //깊은 복사 userClone.name = "mike"; console.log(user.name) //jackson;
target : 목표 객체, 객체의 속성을 복사해 반영한 후 반환할 객체
sources : 출처 객체, 목표 객체에 반영하고자 하는 속성들을 갖고 있는 객체
첫번째 매개변수에 {} 빈 객체를 넣었을 경우 완전 복사
다른 객체를 넣고 넣을경우 병합또는 수정된 객체 깊은 복사
예제
병합된 객체 복사
Object.assign({gender : "male"} , user} { gander : "male", name : "jackson", age : 10 }
수정된 객체 복사
Obejct.assign({name : "smith"} , user} { name : "smith", age : 10 }
키를 배열로 반환
const user = { name : "jackson", age : 10 } Object.keys(user) // [name , age]
데이터 값을 배열로 반환
const user = { name : "jackson", age : 10 } Object.values(user) // ["jackson" , 10]
키와 값을 모두 배열로 반환
[key , value] 형식 배열const user = { name : "jackson", age : 10 } Object.entries(user) // [["name","jackson"] , ["age", 10]]