[javascript] 프로퍼티 디스크립터를 통한 프로퍼티 속성 수정

프로퍼티 디스크립터는 Object.defineProperty() 메서드를 사용하여 생성할 수 있습니다. 이 메서드는 세 개의 매개변수를 받습니다: 대상 객체, 프로퍼티 이름과 프로퍼티 디스크립터입니다.

// 프로퍼티 디스크립터를 통해 프로퍼티 속성 수정
const obj = {};

Object.defineProperty(obj, 'prop', {
  value: 42,
  writable: false,
  enumerable: true,
  configurable: false
});

console.log(obj.prop); // 42
obj.prop = 24; // 에러 발생, 쓰기 불가능한 프로퍼티
console.log(obj.prop); // 42

위의 예제에서, Object.defineProperty() 메서드를 사용하여 obj 객체의 prop 프로퍼티를 정의하고, 속성을 수정합니다. value 속성에는 42라는 값을 할당하며, writable 속성을 false로 설정하여 쓰기 불가능한 프로퍼티로 만듭니다. enumerable 속성을 true로 설정하여 열거 가능한 프로퍼티로 만들고, configurable 속성을 false로 설정하여 수정이 불가능한 프로퍼티로 만듭니다.

마지막으로, obj.prop을 출력하여 값을 확인하고, obj.prop에 새로운 값을 할당하면 에러가 발생하는 것을 볼 수 있습니다.

프로퍼티 디스크립터를 사용하여 프로퍼티의 속성을 수정할 수 있으므로, 객체의 프로퍼티를 더 세밀하게 제어하고 다양한 기능을 구현할 수 있습니다.

더 자세한 내용은 MDN 문서를 참조하세요.