← Back to NOTES 🌰
← Effective JavaScript 🤿
← 아이템 50 - 반복문 대신 반복 메서드를 사용하라
핵심 요약
- 유사 배열 객체는 배열처럼 보이지만 Array.prototype을 상속받지 않는 객체들
- Array.prototype 메서드는 call/apply를 통해 유사 배열 객체에서 재사용 가능하도록 설계됨
- 유사 배열의 조건: length 프로퍼티와 0부터 시작하는 숫자 인덱스 프로퍼티
- concat 메서드는 예외적으로 진짜 배열인지 확인하므로 주의 필요
자세한 내용
유사 배열 객체란?
유사 배열 객체(array-like object)는 겉으로는 배열처럼 보이지만 배열의 메서드를 사용할 수 없는 객체들입니다.
Array.prototype의 표준 메서드들은 Array로부터 상속되지 않은 객체더라도 다른 객체들의 메서드처럼 재사용 가능하도록 설계되었습니다.
유사 배열의 조건
배열 객체가 되기 위한 기본 조건:
- 0부터 2^32-1까지 범위의 정수형 length 프로퍼티
- length 프로퍼티는 객체의 가장 큰 인덱스보다 더 큰 값
- 인덱스는 0부터 2^32-2까지 범위의 값이며 문자열로 표현되는 키 프로퍼티
주요 유사 배열 객체들
- arguments 객체: 함수 인자들을 담는 객체
- NodeList: document.getElementsByTagName, querySelectorAll 등의 반환값