for in
문은 이터러블이 아닌 상속된 열거 가능한 속성들을 포함하여 객체에서 문자열로 키가 지정된 모든 열거 가능한 속성에 대해 반복한다.
for in
문은 모든 객체에서 사용이 가능합니다.
for in
문은 객체의 key 값에 접근할 수 있지만, value 값에 접근하는 방법은 제공하지 않습니다.
자바스크립트에서 객체 속성들은 내부적으로 사용하는 숨겨진 속성들을 가지고 있다.
그 중 하나가 [[Enumerable]]
이며, for in
문은 이 값이 true
인 속성들만 반복 가능하다.
객체의 모든 내장 메서드를 비롯해 각종 내장 프로퍼티들의 [[Enumerable]]
속성은 반복되지 않는다.
[Symbol.iterator]
속성을 가지는 컬렉션 전용 ⇒ 이터러블⇒ 그 객체의 프로토타입 객체는 Object.prototype 객체이다.
⇒ 그 객체의 프로토타입 객체는 생성자함수.prototype 객체이다.