[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 문서를 참조하세요.