>웹 프론트엔드 >JS 튜토리얼 >JavaScript의 다양한 유형의 생성기 설명

JavaScript의 다양한 유형의 생성기 설명

PHPz
PHPz앞으로
2023-09-01 13:33:141023검색

解释 JavaScript 中不同类型的生成器

우리 모두 알고 있듯이 JavaScript는 경량 프로그래밍 언어이며 생성기는 ECMAScript 2015에 도입되었습니다. 생성기는 많은 출력 값을 가지며 중지 및 시작이 가능한 프로세스입니다. JavaScript에서 생성기는 반복 가능한 생성기 개체를 생성하는 생성기 함수로 구성됩니다.

이 글에서는 JavaScript의 생성기와 JavaScript의 다양한 유형의 생성기에 대해 구문과 예제를 통해 자세히 설명합니다.

JavaScript 생성기 소개

제너레이터 기능은 일반 기능과 동일하지만 한 가지 차이점은 제너레이터 기능을 재개하고 일시 중지할 수 있다는 것입니다. 일반적으로 JavaScript에서는 함수가 호출되면 멈추지 않습니다. 일반적으로 생성기의 개념은 비동기 프로그래밍에 나타납니다.

JavaScript의 생성기 함수 구문

이제 JavaScript의 생성기 함수 구문에 대해 논의하고 이를 일반 함수와 비교해 보겠습니다.

function * 구문은 생성기 함수를 작성하는 데 사용되며, 항복 키워드는 이를 일시 중지하는 데 사용됩니다.

으아악

생성기 함수가 처음 호출되면 해당 코드는 실행되지 않지만 생성기 개체가 반환됩니다. 값은 생성기의 next() 메서드를 호출하여 소비됩니다. 이 메서드는 Yield 키워드를 만날 때까지 코드를 실행하고, 이 시점에서 일시 중지하고 next()가 다시 호출될 때까지 기다립니다.

위 코드에서 마지막 명령문 이후에 g.next()를 연속적으로 호출하면 동일한 반환 객체인 {value: undefed, did: true}가 생성됩니다. 왜냐하면 우리가 코드의 '세계'에 있기 때문입니다. 그 이후에 정의됩니다. genFunc() 함수.

yield 키워드는 생성기 함수의 실행을 일시 중지하고 그 뒤에 오는 표현식의 값을 생성기 호출자에게 제공합니다. return 키워드의 생성기 기반 버전과 비슷합니다. Yield를 포함하는 생성기 함수에서만 직접 호출할 수 있습니다.

일반 함수와 비교

으아악

일반 함수에서는 "*" 함수를 사용하지 않으며 위의 예에서 볼 수 있듯이 항복 함수도 사용하지 않습니다. 위에서 논의한 것처럼 일반 함수와 생성기 함수의 주요 차이점은 생성기 함수를 중지하고 일시 중지할 수 있다는 것입니다. 따라서 위의 예에서 우리는 이를 중지하도록 선택하지 않고 "Hello world"라는 전체 문을 직접 인쇄했음을 알 수 있습니다.

생성기 함수의 기본 사항을 이해했으므로 이제 다양한 유형의 생성기 함수로 넘어가겠습니다. -

일반 발전기

일반 생성기에서 생성기는 함수를 생성하기 위해 각 next() 메서드 호출이 실행된 후 다음 값을 생성하는 반복자 역할을 합니다. 목록이 끝날 때까지 숫자를 하나씩 생성하는 예를 살펴보겠습니다.

으아악

위 코드에서는 Yield 키워드가 포함된 일반 일반 함수를 생성하고 next() 함수를 사용하여 이를 여러 번 호출했습니다.

매개변수가 있는 생성기

매개변수가 있는 생성기는 일반 생성기와 약간 다릅니다. 이번에는 next() 함수를 사용하여 매개변수를 전달하여 생성기 함수로 보내야 합니다. 또한 매개변수를 전달할 때마다 Yield 키워드 이전이 아닌 뒤에 저장됩니다. 다음 예에서 이 개념을 이해할 것입니다. -

으아악

위 코드에서는 생성기 함수를 정의하고 이번에는 여기에 매개변수를 전달했습니다. 객체를 처음 호출할 때 주어진 매개변수는 "yield" 키워드보다 먼저 전송되기 때문에 인쇄되지 않고 전송된 값이 변수에 저장되어 인쇄된 후 두 번째로 값이 인쇄됩니다. 현재 출력이 없기 때문에 아무 일도 일어나지 않습니다.

객체 속성이 있는 생성기

Generator는 객체로 사용될 수 있으며 호출하면 할당된 값을 반환하고 인쇄할 수 있습니다. 이 개념을 이해하기 위해 예를 살펴보겠습니다.

으아악

위 코드에서는 먼저 세 개의 항복 표현식을 정의하고 그 뒤에 문자열이 있습니다. 생성기를 호출하면 그 뒤의 문자열이 반환됩니다.

반환 유형, 일부 생성기에는 내부에 다른 생성기가 포함되어 있는 등 다른 유형의 생성기도 있습니다.

결론

기사에서 제너레이터 기능은 일반 기능과 동일하지만 한 가지 차이점이 있으면 제너레이터 기능을 재개하고 일시 중지할 수 있다는 것을 배웠습니다. 일반적으로 JavaScript에서는 함수가 호출되면 멈추지 않습니다. 일반적으로 생성기의 개념은 비동기 프로그래밍에 나타납니다. 매개변수, 속성 등의 객체를 포함하는 일반 생성기, 다른 생성기를 포함하는 생성기 등 다양한 유형의 생성기가 있습니다.

위 내용은 JavaScript의 다양한 유형의 생성기 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제