← Back to NOTES 🌰 ← Effective JavaScript 🤿

← 아이템 47 - Object.prototype에 열거 가능한 프로퍼티를 절대 추가하지 마라

핵심 요약

for...in 루프로 객체를 열거하는 동안 그 객체에 프로퍼티를 추가하거나 삭제하면 예측할 수 없는 동작이 발생한다. ECMAScript 명세는 열거 중 추가된 프로퍼티가 현재 열거에 포함될 것을 보장하지 않으며, 삭제된 프로퍼티의 처리도 구현에 따라 다르다. 열거 중 객체 수정이 필요하다면 while 루프나 일반 for 루프를 사용하거나, 수정할 항목을 별도로 수집한 후 나중에 처리하라.

자세한 내용

for...in 루프의 불확실성

객체 수정의 위험 시나리오

안전한 대안