[javascript] 프로퍼티 디스크립터의 구성 요소
  1. value: 프로퍼티에 할당되는 값입니다. 이 값은 자바스크립트의 모든 데이터 유형 중 하나일 수 있습니다.

예제 코드:

var person = {
  name: "John",
  age: 30
};

console.log(person.name); // 출력: John
  1. writable: 프로퍼티가 수정 가능한지를 나타내는 불리언 값입니다. true로 설정하면 값을 변경할 수 있으며, false로 설정하면 값을 변경할 수 없습니다.

예제 코드:

var person = {
  name: "John",
  age: 30
};

Object.defineProperty(person, "name", {
  writable: false
});

person.name = "Jane"; // 에러: name 프로퍼티는 수정할 수 없습니다.
  1. enumerable: 프로퍼티가 열거 가능한지를 나타내는 불리언 값입니다. true로 설정하면 for…in 루프 등의 열거 작업에서 해당 프로퍼티가 나타나고, false로 설정하면 열거 작업에서 나타나지 않습니다.

예제 코드:

var person = {
  name: "John",
  age: 30
};

Object.defineProperty(person, "name", {
  enumerable: false
});

for (var key in person) {
  console.log(key); // 출력: age
}
  1. configurable: 프로퍼티가 구성 가능한지를 나타내는 불리언 값입니다. true로 설정하면 다음과 같이 프로퍼티의 구성을 변경할 수 있습니다.

false로 설정하면 위의 동작들이 불가능합니다.

예제 코드:

var person = {
  name: "John",
  age: 30
};

Object.defineProperty(person, "name", {
  configurable: false
});

delete person.name; // 에러: name 프로퍼티를 삭제할 수 없습니다.

프로퍼티 디스크립터는 Object.defineProperty() 메서드를 사용하여 정의하거나, 객체 리터럴 내에서 직접 정의할 수 있습니다. 이를 통해 자바스크립트 객체의 속성을 세밀하게 제어할 수 있습니다.

참고 문서: