Array.from
•
유사 배열 객체(array-like object)나 반복 가능한 객체(iterable object)를 실제 배열로 만들 때 사용
유사 배열 객체
•
배열과 비슷한 구조를 가졌지만 실제 배열은 아닌 객체
•
array와 비슷하게 인덱스를 가진 객체로 인덱스로(키가 숫자) 접근이 가능하고 length 프로퍼티를 가지고 있어야한다.
•
Array.prototype으로 부터 inherit 되지 않으므로 push, pop, forEach, map과 같은 메서드를 사용할 수 없다.
•
자바스크립트에서 Array like object는 일반 Object로 취급된다.
반복 가능한 객체(iterable object)- iterable protocol
const str = 'hello';
str[Symbol.iterator]; // [Function]
TypeScript
복사
•
String, Array, TypedArray, Map, Set이다.
•
iterable protocol은 새로운 빌트인 syntax 같은게 아닌 프로토콜이다.
•
iterable protocol에 부합되는 객체일 경우 for…of, 스프레드 연산자, 구조분해 할당, Array.from과 같은 작업들을 할 수 있다. → 코드를 더 좋게 만들어주는 역할.
FileList
•
FileList는 객체지만 iterable protocol을 준수한다. → 그에 해당하는 메서드들을 사용할 수 있다.