Iterator는 그러한 메커니즘입니다. 다양한 데이터 구조에 대한 통합 액세스 메커니즘을 제공하는 인터페이스입니다. 모든 데이터 구조가 Iterator 인터페이스를 배포하는 한 순회 작업을 완료할 수 있습니다(즉, 데이터 구조의 모든 멤버를 순서대로 처리).
기능:
다양한 데이터 구조에 대한 통합되고 간단한 액세스 인터페이스를 제공합니다.
데이터 구조의 멤버를 특정 순서로 정렬할 수 있습니다.
ES6은 새로운 순회를 생성합니다. 명령 for...of
루프이며 Iterator 인터페이스는 주로 for...of
소비에 사용됩니다for...of
循环,Iterator接口主要供for...of
消费
Iterator的遍历过程:
(1)创建一个指针对象,指向当前数据结构的起始位置。也就是说,遍历器对象本质上,就是一个指针对象。
(2)第一次调用指针对象的next
方法,可以将指针指向数据结构的第一个成员。
(3)第二次调用指针对象的next
方法,指针就指向数据结构的第二个成员。
(4)不断调用指针对象的next
方法,直到它指向数据结构的结束位置。
在ES6中,有三类数据结构原生具备Iterator接口:数组、某些类似数组的对象、Set和Map结构。
可以覆盖原生的Symbol.iterator
(1) 생성 현재 데이터 구조의 시작 부분을 가리키는 포인터 개체입니다. 즉, traverser 객체는 본질적으로 포인터 객체입니다.
(2) 포인터 객체의 next
메서드를 처음 호출하면 포인터가 데이터 구조의 첫 번째 멤버를 가리킬 수 있습니다.
next
메서드가 두 번째로 호출되면 포인터는 데이터 구조의 두 번째 멤버를 가리킵니다. 🎜🎜(4) 데이터 구조의 끝을 가리킬 때까지 포인터 개체의 next
메서드를 계속 호출합니다. 🎜🎜ES6에는 기본적으로 Iterator 인터페이스를 갖는 세 가지 유형의 데이터 구조, 즉 배열, 배열과 유사한 특정 객체, Set 및 Map 구조가 있습니다. 🎜🎜기본 Symbol.iterator
메서드를 재정의하여 반복자의 동작을 수정할 수 있습니다. 🎜🎜for...of🎜🎜for...of 루프는 배열, Set 및 Map 구조, 특정 배열과 유사한 객체(예: 인수 객체, DOM NodeList 객체), 아래 언급된 Generator 객체 및 문자열에서 사용할 수 있습니다. . 🎜🎜🎜🎜rreee위 내용은 JavaScript ES6 구문의 반복자 및 for...of 루프에 대한 자세한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!