ES6 생 성기 용법 실례 분석
문법
무엇이 생 성기 입 니까?먼저 다음 코드 를 봅 시다.
function* quips(name) {
yield "hello " + name + "!";
yield "i hope you are enjoying the blog posts";
if (name.startsWith("X")) {
yield "it's cool how your name starts with X, " + name;
}
yield "see you later!";
}
잘못 보지 않 았 습 니 다.이것 이 바로 JavaScript 코드 입 니 다.니 가 알 던 자 바스 크 립 트 랑 좀 다른 거 아니 야?이 함 수 를 생 성기 함수 라 고 한다.생 성기 함수 가 일반 함수 와 비슷 해 보이 지 않 나 요?그것들의 차 이 는 다음 과 같다.
일반적인 함 수 는 function 으로 시작 하고 생 성기 함 수 는 function*로 시작 합 니 다.
생 성기 함수 중 하나의 특수 키 워드 는 바로 yield 이 고,역할 은 일시 정지 함수 입 니 다.next 방법 에 맞 춰 한 걸음 한 걸음 실행 함수 의 목적 을 달성 할 수 있 습 니 다.
next 방법의 사용 을 살 펴 보 자.
> var iter = quips("lf");
[object Generator]
> iter.next()
{ value: "hello lf!", done: false }
> iter.next()
{ value: "i hope you are enjoying the blog posts", done: false }
> iter.next()
{ value: "see you later!", done: false }
> iter.next()
{ value: undefined, done: true }
매번 next 방법 을 사용 하면 생 성기 함수 가 다음 yield 위치 로 실 행 됩 니 다.기본 적 인 생 성기 문법 은 다 말 했다.
활용 단어 참조
생 성 기 는 비동기 프로 그래 밍 에 사용 할 수 있 습 니 다.저 는 이전 글 에서 소 개 했 습 니 다.앞의 을 참고 할 수 있 습 니 다.
그러나 주의해 야 할 것 은 생 성 기 는 비동기 적 인 것 이 아니 라 hack 수단 일 뿐 입 니 다.
본 논문 에서 말 한 것 이 여러분 의 ECMAScript 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
(Javascript) ES6의 주요 특징 정리let을 사용하면 선언한 변수는 블록안에서만 유효하게 된다. const 역시 마찬가지로 블록스코프를 따른다 .const 와 let의 차이점은 const 는 상수로 값을 할당한다는 점이다. 따라서 값을 변경시키려고 하...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.