1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ジェネレーター関数】

Posted at

ジェネレーター関数とは

ジェネレーター関数は、function*を使って定義し、yieldキーワードを使って、関数の 実⾏を⼀時停⽌し、後で再開することができる。

function* 関数名() { 
  yield ; 
}
function *generator() {
  yield 1
  yield 2
  yield 3
  yield 4
  yield 5
}

const g = generator() // g は Generator オブジェクト(関数名)

const g = generator()
console.log(g.next()).value);  // { value: 1, done: false }
console.log(g.next()).value);  // { value: 2, done: false }
console.log(g.next()).value);  // { value: 3, done: false }
console.log(g.next()).value);  // { value: 4, done: false }
console.log(g.next()).value);  // { value: 5, done: false }
console.log(g.next()).value);  // { value: undefined, done: true }

next() を呼び出すとジェネレーター関数の本体が実行され、yield に到達すると処理が呼び出し側に戻される。このときの戻り値はキー value とキー done を持つオブジェクトで、value には yield で返した値が入っていつ。続けてnext()を呼び出すと、ジェネレーター関数の本体が先程の続きから再び yield または本体の最後に到達するまで実行される。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?