[javascript] 프로퍼티 디스크립터를 사용한 특정 프로퍼티 제거

JavaScript에서 객체의 프로퍼티를 제거하는 방법은 여러 가지가 있습니다. 이 중에서 Object.defineProperty 메소드를 사용하여 프로퍼티 디스크립터를 사용하면 특정 프로퍼티를 제거할 수 있습니다.

프로퍼티 디스크립터란 무엇인가?

프로퍼티 디스크립터는 객체의 프로퍼티에 대한 정보를 담고 있는 JavaScript 객체입니다. 이 디스크립터에는 value, writable, enumerable, configurable 등의 속성이 있습니다.

특정 프로퍼티 제거하기

특정 프로퍼티를 제거하기 위해서는 해당 프로퍼티의 디스크립터를 가져와서 configurable 속성을 true로 설정해야 합니다. 기본적으로 Object.defineProperty 메소드로 선언되는 프로퍼티는 configurable 속성이 false로 설정되어 있어 제거할 수 없습니다.

다음은 Object.defineProperty 메소드를 사용하여 특정 프로퍼티를 제거하는 예시입니다.

const obj = {
  prop1: 'value1',
  prop2: 'value2',
  prop3: 'value3'
};

// 특정 프로퍼티 제거
Object.defineProperty(obj, 'prop2', { 
  configurable: true // configurable 속성을 true로 설정
});

console.log(obj); // { prop1: 'value1', prop3: 'value3' }

위의 코드에서는 prop2 프로퍼티의 디스크립터를 가져와서 configurable 속성을 true로 설정함으로써 prop2 프로퍼티를 제거할 수 있습니다.

참고 자료