[javascript] 프로퍼티 디스크립터와 프로퍼티 값을 동적으로 설정

자바스크립트에서는 객체의 프로퍼티 디스크립터를 사용하여 프로퍼티의 속성을 설정할 수 있습니다. 프로퍼티 디스크립터는 프로퍼티의 값, writable 여부, enumerable 여부, configurable 여부 등의 정보를 포함합니다.

프로퍼티 디스크립터를 사용하여 프로퍼티의 속성을 동적으로 설정하는 방법을 알아보겠습니다.

프로퍼티 디스크립터 설정하기

자바스크립트에서는 객체의 프로퍼티에 접근할 때 Object.defineProperty() 메서드를 사용하여 프로퍼티 디스크립터를 설정할 수 있습니다.

아래의 예제는 객체 person에 프로퍼티 name을 추가하고, 이 프로퍼티에 대한 디스크립터를 설정하는 코드입니다.

let person = {};

Object.defineProperty(person, 'name', {
  value: 'John',
  writable: false,
  enumerable: true,
  configurable: true
});

위의 코드에서 Object.defineProperty() 메서드는 세 개의 인자를 받습니다. 첫 번째 인자는 대상 객체를 나타내며, 두 번째 인자는 프로퍼티 이름, 세 번째 인자는 프로퍼티 디스크립터를 설정하는 객체입니다.

위의 예제에서 프로퍼티 name의 값을 John으로 설정하고, writable 속성을 false로 설정하여 읽기 전용으로 만들었습니다. 또한, enumerable과 configurable 속성을 true로 설정하여 해당 프로퍼티를 열거 가능하고, 재설정할 수 있도록 만들었습니다.

프로퍼티 값 동적으로 설정하기

프로퍼티의 속성뿐만 아니라, 프로퍼티의 값을도 동적으로 설정할 수 있습니다. 객체의 프로퍼티에 값을 할당할 때는 단순히 = 연산자를 사용하면 됩니다.

person.name = 'Jane';

위의 코드에서는 person 객체의 name 프로퍼티의 값을 Jane으로 변경하는 예제입니다. writable 속성이 false로 설정되어 있지만, 값을 할당하는 것만으로는 에러가 발생하지 않습니다. 그러나 설정된 writable 속성에 따라 값을 변경할 수 있는지 여부가 결정됩니다.

결론

자바스크립트에서는 프로퍼티 디스크립터를 통해 객체의 프로퍼티 속성을 설정할 수 있습니다. 또한, 프로퍼티의 값을 동적으로 변경하는 것도 가능합니다. 이를 활용하면 객체의 속성과 값을 유연하게 조작할 수 있습니다.

더 자세한 정보는 MDN web docs를 참조하십시오.