[javascript] 프로퍼티 디스크립터 사용 전략과 개발 스타일
자바스크립트에서는 객체의 프로퍼티를 정의하고 설정할 때 디스크립터(descriptor)를 사용할 수 있습니다. 프로퍼티 디스크립터는 프로퍼티의 속성과 동작을 정의하는 객체입니다. 이를 통해 우리는 프로퍼티의 가시성, 수정 가능성, 열거 가능성 등과 같은 속성을 설정할 수 있습니다.
프로퍼티 디스크립터 사용 전략
프로퍼티 디스크립터를 사용할 때 몇 가지 전략을 고려해야 합니다.
-
읽기 전용 프로퍼티 설정하기: 특정 프로퍼티를 읽기 전용으로 만들고 싶다면
writable
속성을false
로 설정합니다. 이렇게 하면 해당 프로퍼티는 수정할 수 없게 됩니다. -
프로퍼티 삭제 방지하기: 특정 프로퍼티를 삭제할 수 없도록 만들고 싶다면
configurable
속성을false
로 설정합니다. 이렇게 하면 해당 프로퍼티는 삭제될 수 없게 됩니다. -
프로퍼티 열거 방지하기: 특정 프로퍼티를 열거할 수 없도록 만들고 싶다면
enumerable
속성을false
로 설정합니다. 이렇게 하면 해당 프로퍼티는for...in
반복문 등에서 나타나지 않습니다. -
프로퍼티 값 변경 방지하기: 특정 프로퍼티의 값이 변경되는 것을 방지하고 싶다면
value
속성을 설정하고writable
속성을false
로 설정합니다.
개발 스타일
프로퍼티 디스크립터를 사용할 때에는 명시적인 방식으로 설정하는 것이 좋습니다. 다음은 예시 코드입니다.
const obj = {};
Object.defineProperty(obj, 'readOnlyProp', {
value: 'read only value',
writable: false,
enumerable: true,
configurable: false
});
이렇게 코드를 작성하면 obj
객체의 readOnlyProp
프로퍼티는 읽기 전용이며, 열거 가능하며, 수정 및 삭제할 수 없게 됩니다.