
Object.defineProperty() 메서드는 객체의 속성을 정의할 때 사용됩니다. 이 메서드의 세 번째 인자로 descriptor를 전달하는 방법은 다음과 같습니다.
descriptor 객체는 속성의 특성을 정의하는 객체입니다. 이 객체의 속성 중 writable, enumerable, configurable 속성은 다음과 같은 역할을 합니다.
- writable 속성: 속성이 읽기만 가능하도록 설정할 때 true, 읽기/쓰기 가능하도록 설정할 때 false입니다.
- enumerable 속성: 속성이 객체의 열거 가능 속성 목록에 포함되도록 설정할 때 true, 포함되지 않도록 설정할 때 false입니다.
- configurable 속성: 속성이 삭제되거나 재정의되도록 설정할 때 true, 삭제/재정의되지 않도록 설정할 때 false입니다.
위 코드에서 descriptor 객체의 속성 중 writable, enumerable, configurable 속성은 다음과 같은 의미를 가지고 있습니다.
- writable 속성은 속성이 읽기만 가능하도록 설정되어 있습니다. 따라서 obj.name = 'Jane'과 같이 속성을 재정의하는 것은 불가능합니다.
- enumerable 속성은 속성이 객체의 열거 가능 속성 목록에 포함되어 있습니다. 따라서 for...in 문이나 Object.keys() 메서드를 사용하여 속성을 열거할 수 있습니다.
- configurable 속성은 속성이 삭제되거나 재정의되도록 설정되어 있습니다. 따라서 delete obj.name과 같이 속성을 삭제하거나 Object.defineProperty() 메서드를 사용하여 속성을 재정의할 수 있습니다.
2025-06-07 23:12