생성자 함수를 통해 자바스크립트 객체의 불변성 보장 방법
자바스크립트에서 객체를 다루다 보면, 객체의 불변성을 유지하고 보장하는 것이 중요합니다. 객체의 불변성은 객체가 생성된 이후에 그 상태를 변경할 수 없다는 의미입니다. 객체의 불변성을 보장하면 코드의 신뢰성을 높일 수 있고, 예상치 못한 오류를 방지할 수 있습니다.
자바스크립트에서 객체의 불변성을 보장하는 방법 중 하나는 생성자 함수를 활용하는 것입니다. 생성자 함수는 객체를 생성하고 초기화하는 역할을 수행합니다. 객체의 생성과 초기화가 한 번 이루어진 이후에는 객체의 상태를 변경할 수 없도록 설정할 수 있습니다.
아래는 생성자 함수를 활용하여 자바스크립트 객체의 불변성을 보장하는 예시 코드입니다.
function ImmutableObject(name, age) {
const privateName = name;
const privateAge = age;
this.getName = function() {
return privateName;
};
this.getAge = function() {
return privateAge;
};
}
const obj = new ImmutableObject("John", 25);
console.log(obj.getName()); // "John"
console.log(obj.getAge()); // 25
obj.name = "Jane";
obj.age = 30;
console.log(obj.getName()); // "John"
console.log(obj.getAge()); // 25
위 예시 코드에서, ImmutableObject
라는 생성자 함수를 정의하고, name
과 age
라는 private 변수를 생성합니다. getName
과 getAge
라는 메소드를 통해 private 변수에 접근할 수 있도록 합니다. 이렇게 생성된 객체는 생성 이후에는 getName
과 getAge
메소드를 통해서만 데이터에 접근할 수 있고, 외부에서 직접적으로 private 변수에 접근하여 값을 변경할 수 없습니다.
이와 같은 방식으로 생성된 객체는 불변성을 보장하며, 코드의 안정성을 높일 수 있습니다. 객체의 상태 변경이 필요한 경우에는 새로운 객체를 생성하거나, 새로운 상태를 반환하는 방식으로 구현할 수 있습니다.