[javascript] 객체 프로퍼티의 설명자 속성을 동적으로 변경하는 방법

이 때, Object.defineProperty 메소드를 사용하여 객체의 속성에 대한 설명자 속성을 동적으로 변경할 수 있습니다. 이 메소드는 새로운 속성을 정의하거나 이미 존재하는 속성의 속성을 수정할 때 사용됩니다.

예를 들어, 다음과 같이 person 객체를 정의하고 name 속성의 설명자 속성을 동적으로 변경해보겠습니다.

let person = {};

Object.defineProperty(person, 'name', {
  value: 'John',
  writable: true,
  enumerable: true,
  configurable: true
});

console.log(Object.getOwnPropertyDescriptor(person, 'name'));

// name 속성의 writable 속성을 false로 변경
Object.defineProperty(person, 'name', {
  writable: false
});

console.log(Object.getOwnPropertyDescriptor(person, 'name'));

위 예제에서 Object.defineProperty 메소드를 사용하여 name 속성의 writable 속성을 false로 변경하였습니다.

이와 같이 Object.defineProperty를 사용하면 객체의 속성에 대한 설명자 속성을 동적으로 변경할 수 있습니다. 이를 통해 런타임 중에 객체의 동작을 조절하거나 보다 세밀한 제어를 할 수 있습니다.

더 자세한 내용은 MDN web docs를 참고할 수 있습니다.