[javascript] 프로퍼티 디스크립터를 통한 프로퍼티 속성 읽기 전용 설정
자바스크립트에서는 프로퍼티 디스크립터를 이용하여 프로퍼티의 속성을 설정할 수 있습니다. 이 중에서 읽기 전용 속성을 설정하는 방법에 대해 알아보겠습니다.
프로퍼티 디스크립터란?
프로퍼티 디스크립터(property descriptor)는 프로퍼티의 속성을 정의하는 데 사용되는 객체입니다. 프로퍼티 디스크립터 객체는 Object.defineProperty()
메서드를 사용하여 프로퍼티에 덧붙일 수 있습니다.
프로퍼티 디스크립터 객체는 다음과 같은 속성을 가질 수 있습니다:
value
: 프로퍼티의 값writable
: 프로퍼티 값의 변경 가능 여부enumerable
: 프로퍼티의 열거 가능 여부configurable
: 프로퍼티의 재정의 가능 여부
읽기 전용 속성 설정 방법
읽기 전용 속성을 설정하려면 프로퍼티 디스크립터 객체의 writable
속성을 false
로 설정하면 됩니다. 다음은 예제 코드입니다:
const obj = {};
Object.defineProperty(obj, 'readOnlyProp', {
value: 'read only',
writable: false,
enumerable: true,
configurable: false
});
console.log(obj.readOnlyProp); // 출력: 'read only'
obj.readOnlyProp = 'attempt to change'; // 에러 발생: Cannot assign to read only property 'readOnlyProp'
위 코드에서 Object.defineProperty()
메서드를 사용하여 obj
객체의 readOnlyProp
프로퍼티에 프로퍼티 디스크립터를 설정하고 있습니다. writable
속성을 false
로 설정하여 읽기 전용 속성으로 만들었습니다.
따라서 obj.readOnlyProp
을 읽을 수는 있지만, 값을 변경하려고 할 때 에러가 발생합니다.
결론
프로퍼티 디스크립터를 이용하면 자바스크립트 객체의 프로퍼티를 더 세밀하게 제어할 수 있습니다. writable
속성을 false
로 설정하여 프로퍼티를 읽기 전용으로 만들 수 있습니다.
더 자세한 내용은 MDN 문서를 참고하세요.