
Object.defineProperties() 메서드는 객체의 속성을 정의하고 수정할 때 사용됩니다. 속성 디스크립터 (descriptors) 객체는 속성의 특성을 정의하는 객체입니다.
속성 디스크립터 객체는 다음과 같은 속성을 가집니다.
- value: 속성의 초기값
- writable: 속성을 읽기/쓰기 가능 여부 (기본값: true)
- enumerable: 속성을 열거 가능 여부 (기본값: true)
- configurable: 속성을 삭제/수정 가능 여부 (기본값: true)
속성 디스크립터의 writable 속성을 false로 설정하여 속성을 읽기 전용으로 만들 수 있습니다. 예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
javascript
const obj = {};
Object.defineProperty(obj, 'name', {
value: 'John',
writable: false,
enumerable: true,
configurable: true
});
console.log(obj.name); // John
try {
obj.name = 'Jane';
} catch (e) {
console.log(e); // TypeError: Cannot assign to read only property 'name' of object '#'
}
위 코드에서, 'name' 속성의 writable 속성을 false로 설정하여 읽기 전용으로 만들었습니다. 따라서, obj.name = 'Jane'와 같은 코드는 TypeError를 발생시킵니다.
2025-07-07 03:36