[javascript] 자바스크립트 프로퍼티 디스크립터의 역할

자바스크립트에서 프로퍼티 디스크립터(property descriptor)는 객체의 속성(property)을 설명하는 역할을 합니다. 이 디스크립터는 프로퍼티의 속성을 정의하고 커스터마이즈하는 데 사용됩니다. 프로퍼티 디스크립터는 Object.defineProperty() 함수를 통해 정의하거나 수정할 수 있습니다.

프로퍼티 디스크립터의 구성 요소

프로퍼티 디스크립터는 다음 세 가지 구성 요소로 이루어져 있습니다:

  1. value: 프로퍼티의 현재 값
  2. writable: 프로퍼티의 값을 변경할 수 있는지 여부를 나타내는 불리언 값
  3. enumerable: 프로퍼티가 for…in 루프에서 열거 가능한지 여부를 나타내는 불리언 값

프로퍼티 디스크립터 사용 예시

아래는 프로퍼티 디스크립터를 사용한 예시입니다:

const person = { name: "John" };

// 프로퍼티 디스크립터 설정
Object.defineProperty(person, "age", {
  value: 25,
  writable: false,
  enumerable: true
});

console.log(person.age); // 25

// 프로퍼티 값을 변경하려고 시도
person.age = 30;

console.log(person.age); // 25 (변경되지 않음)

위의 예시에서 person 객체의 age 프로퍼티는 디스크립터를 사용하여 정의됩니다. value를 설정하여 초기 값으로 25를 지정하고, writable을 false로 설정하여 값을 변경할 수 없도록 합니다. enumerable은 true로 설정되어 for…in 루프에서 프로퍼티가 열거될 수 있도록 합니다.

참고 자료