[javascript] 객체의 프로퍼티를 열거 가능/불가능으로 설정하는 방법

열거 가능 여부를 설정하는 방법은 Object.defineProperty 메서드를 사용하는 것입니다.

예를 들어, 다음과 같이 객체 obj를 정의하고 프로퍼티 key를 추가한 후, 이를 열거 불가능하게 만들어 보겠습니다.

const obj = {};

// 열거 가능한 프로퍼티 추가
Object.defineProperty(obj, 'key', {
  value: 'value',
  enumerable: true // 열거 가능하게 설정
});

// 열거 불가능한 프로퍼티 추가
Object.defineProperty(obj, 'nonEnumKey', {
  value: 'value',
  enumerable: false // 열거 불가능하게 설정
});

위의 예에서 Object.defineProperty를 사용하여 key 프로퍼티를 열거 가능하게, nonEnumKey 프로퍼티를 열거 불가능하게 설정했습니다.

이제, Object.keys나 for…in 루프를 통해 obj의 프로퍼티를 확인해보면 key는 포함되고, nonEnumKey는 포함되지 않음을 확인할 수 있습니다.

자세한 내용은 MDN web docs를 참고할 수 있습니다.