Object.assign(target, ...source)
source 객체들을 복사해 target에 붙여넣는다.
const target = { a : 1, b : 2 }
const source = { b : 3, c : 4 }
const returnTarget = Object.assign(tartget, source);
console.log(returnTarget)//{ a : 1, b : 3, c : 4 }
console.log(returnTarget === target)// true;
//assign 메서드는 불변성을 가지고 있지 않아 target객체와
//returnTarget객체는 모두 같은 주소값을 가졌으며 같은 객체를 바라보고 있다.
JavaScript
복사
Object.defineProperties()
객체에 새로운 속성을 부여하거나 기존의 속성을 수정하고 그 객체를 반환
//객체 생성
const obj = {};
//
Object.defineProperties(obj, {
//name 속성을 부여하였으며 값은 10 할당, 수정 불가능
name: {
value : 'kim',
writable: false
},
//age 속성을 부여하였으며 수정가능
age : {
value : 20 ,
writable : true
}
});
console.log(obj.name);//kim
console.log(obj.age);//20
//obj의 name 속성을 park으로, age 속성을 30으로 수정
obj.name = 'park';
obj.age = 30;
console.log(obj.name);//kim
console.log(obj.age);//30
//name속성은 수정이 안되는것을 확인할 수 있다. writable을 false로 사용하여 객체 내부의 값을 함부로 수정하지 못하게 막았기 때문이다.
JavaScript
복사