자바스크립트 입문_불변객체

자바스크립트 2021. 5. 3. 14:25

(본 포스팅은 위키북스의 '코어자바스크립트' 책을 공부하면서 작성되었습니다_내돈내산)

 

  • 불변객체(immutable object) : 참조형데이터의 '가변'은 데이터 자체가 아닌 내부 프로퍼티를 변경할 때만 성립함. 바뀌기전과 바뀐후의 정보차이를 가시적으로 보여줘야 하는 기능을 구현하기 위해서는 불변객체가 필요함. 

2021.05.03 - [JavaScript] - 자바스크립트 입문_변수의 복사

위에서 보면 내부의 프로퍼티를 바꾸는 순간 복사된 데이터값이 바뀌는 것을 알 수 있음. 이런현상이 필요하지 않을때 다음과 같은 방법을 사용하게 됨.(어쨋거나 새로운객체를 할당(리턴)하게 됨)

 

var user = {
	name : 'Jimin',
	gender : 'male'
};

var changeName = function(user, newName) {
	return {
		name : newName,
		gender : user.gender
	};
};

var user2 = changeName(user, 'Yu')

if(user !== user2) {
	console.log('유저정보가 변경되었습니다'); // 유저정보가 변경되었습니다.
};

console.log(user.name, user2.name); // Jimin Yu
console.log(user === user2 ); // false

이러한 불변객체를 만들기 위한 immutable.js, baobab.js 등의 라이브러리가 등장해서 인기를 끌고 있으니 찾아보는것도 좋을듯함.

 

 

admin