function* 式

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

構文

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

引数

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

解説

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

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

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

仕様書

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

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
function*Chrome 完全対応 49Edge 完全対応 12Firefox 完全対応 26IE 未対応 なしOpera 完全対応 36Safari 完全対応 10WebView Android 完全対応 49Chrome Android 完全対応 49Firefox Android 完全対応 26Opera Android 完全対応 36Safari iOS 完全対応 10Samsung Internet Android 完全対応 5.0nodejs 完全対応 4.0.0
Trailing comma in parametersChrome 完全対応 58Edge 完全対応 79Firefox 完全対応 52IE 未対応 なしOpera 完全対応 45Safari 完全対応 10WebView Android 完全対応 58Chrome Android 完全対応 58Firefox Android 完全対応 52Opera Android 完全対応 43Safari iOS 完全対応 10Samsung Internet Android 完全対応 7.0nodejs 完全対応 8.0.0

凡例

完全対応  
完全対応
未対応  
未対応

関連情報