function* 式

function* キーワードは、式の中でジェネレーター関数を定義するために使用することができます。

構文

function* [name]([param1[, param2[, ..., paramN]]]) {
   statements
}

引数

name 省略可
関数名。省略可。省略した場合、関数は無名関数として認識されます。名前は関数本体のみにローカルです。
paramN  省略可
関数に渡される引数の名前。関数は最大 255 の引数を持ち得ます。
statements
関数の本体を構成するステートメント。

解説

function* 式は function* 文ととてもよく似ており、構文もほとんど同じです。function* 式と function* 文の主な違いは、function* 式で無名ジェネレーター関数を生成するには関数名が省略できる点です。詳細は functions をご覧ください。

function* を使用する

次の例では、無名ジェネレーター関数を定義し、x に割り当てます。関数は引数の二乗をもたらします:

let x = function*(y) {
   yield y * y;
};

仕様

仕様書
ECMAScript (ECMA-262)
function* の定義

ブラウザーの互換性

No compatibility data found for javascript.operators.function_star.
Check for problems with this page or contribute missing data to mdn/browser-compat-data.

関連情報