[javascript] 프로퍼티 디스크립터를 이용한 객체 상태 제어

JavaScript에서 객체의 프로퍼티를 제어하는 방법은 매우 중요합니다. 객체의 상태를 제어하기 위해 프로퍼티 디스크립터를 사용할 수 있습니다. 프로퍼티 디스크립터란 객체의 프로퍼티에 대한 속성을 정의하는 객체입니다. 이를 통해 프로퍼티의 값을 읽기 전용, 쓰기 전용 등으로 제한할 수 있습니다.

프로퍼티 디스크립터 생성하기

프로퍼티 디스크립터를 생성하기 위해서는 Object.defineProperty() 메서드를 사용합니다. 이 메서드는 다음과 같은 형태로 사용됩니다.

Object.defineProperty(obj, prop, descriptor)

프로퍼티 디스크립터 속성

프로퍼티 디스크립터 객체는 다음과 같은 속성을 가질 수 있습니다.

예제: 읽기 전용 프로퍼티 디스크립터 생성

다음은 읽기 전용 프로퍼티 디스크립터를 생성하는 예제입니다.

let obj = {};
Object.defineProperty(obj, 'name', {
  value: 'John',
  writable: false,
  enumerable: true,
  configurable: false
});

console.log(obj.name); // "John"
obj.name = 'Mike'; // 에러 발생
console.log(obj.name); // "John"

위 예제에서는 name 프로퍼티를 읽기 전용으로 만들기 위해 writable 속성을 false로 설정했습니다. 따라서 obj.name = 'Mike'와 같은 할당 연산이 에러를 발생시킵니다.

결론

JavaScript에서 객체의 상태를 제어하기 위해서는 프로퍼티 디스크립터를 적절히 활용해야 합니다. 프로퍼티 디스크립터를 이용하면 읽기 전용, 쓰기 전용 등의 제한을 통해 객체의 상태를 보다 안정적으로 관리할 수 있습니다.