javascript 반복문 예제

Количество просмотров: 41

Автор Antonenko Andrii в . Опубликовано Без рубрики

2- … 스프레드/나머지 연산자:es6 스프레드 연산자를 사용하여 이터레이터를 소비할 수 있습니다. 위의 Fibonacci 스니펫에서 수행 할 수 있습니다 : 이제 Fibonacci 예제를 다시 방문하지만 이번에는 생성기로 구현한 다음 반복기 개체의 다음 () 메서드를 호출하여 각 요소의 값을 얻습니다. 당신이 볼 수 있듯이, 에 대한 … 루프는 무대 뒤에서 당신을 위해 모든 작업을 수행합니다. 일부 문과 식은 반복 가능한 것으로 예상되는 데,(예: for-of 루프, yield*). 따라서 반복기에서 next()를 호출할 때마다 {value: 현재 반복 값, 수행된 거짓/true} 다이어그램은 반복 가능, 반복자 및 다음 간의 관계를 설정하는 데 도움이 될 수 있습니다. 이 관계를 반복 프로토콜이라고 합니다. 우리는 위와 같은 우리의 사용자 정의 거점 거터를 구현할 수 있습니다. 그러나 자바 스크립트는 이터러블을 만드는 또 다른 방법을 제공합니다. 이것은 정확히 for-of 루프에서 일어나는 일입니다. for-of 루프는 반복 가능한 루프를 취하고 반복기를 만듭니다. 완료 될 때까지 다음() 호출에 계속 합니다.

그리고 당신은 단지 당신이 에 사용할 사용자 정의 형식에 대한 이터레이터를 만들 필요가 … 루프의. 예를 들어, 이터레이터를 사용하여 백 데이터 구조를 구현할 수 있습니다. 이 기사에서 얻은 지식을 통해 거용이 어떻게 작동하는지 쉽게 이해할 수 있습니다. 논리는 따라하기가 조금 어려울 수 있습니다. 따라서 코드와 함께 주석을 작성했습니다. 그러나 개념을 내면화하고 이해하는 가장 좋은 방법은 브라우저 또는 노드에서 코드를 재생하는 것입니다. ECMA는 사용자 지정 개체를 반복하는 이 프로세스를 표준화하기 위해 유사한 단계를 수행했습니다. 그러나 이름 이터레이터를 사용하는 대신 ECMA는 Symbol.iterator라는 이름을 사용했습니다. 기호는 고유하며 다른 속성 이름과 충돌할 수 없는 이름을 제공합니다. 또한 Symbol.iterator는 이터레이터라는 개체를 반환합니다. 이 이 거터에는 키 값을 가진 개체를 반환하고 완료한 다음 메서드가 있습니다.

@@iterator 메서드는 for.의 시작 부분에 한 번만 호출됩니다. 루프의. 그래서 다음은 왜 위와 동일? 이 거이기가 아닌 이거이기 때문에 .next를 사용할 수 있으려면 이 거처 메서드를 호출해야 합니다.이 이 거문의 Symbol.iterator 반환: 우리는 우리 자신의 거처를 만들 수 있고 거리기 개체는 예제를 볼 수 있습니다. 이터러블 인터페이스에 의해 반환되는 객체는 또한 거리 객체이다. yield에 대 한 특별 한 것은 함수 실행을 일시 중지, iterator 개체를 반환 하 고 다음() 메서드가 호출 될 때마다 함수 실행을 다시 시작 합니다. 생성기가 기본적으로 Symbol.iterator 속성을 할당하므로 생성기에 의해 생성된 모든 이터레이터도 이터러블이 가능합니다. 이와 함께: 객체가 이터레이터를 반환하는 메서드가 필요하며 이 메서드 속성은 @@iterator(Symbol.iterator)입니다.

Другие записи раздела:

  

Трекбэк с Вашего сайта.