[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를 참고할 수 있습니다.