function* 式

function* 演算子は式の中でジェネレーター関数を定義します。

構文

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

引数

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

説明

function* 式は function* ステートメントとよく似ており、同じ書式でもあります。function* 式と function* ステートメントの主な違いは、無名ジェネレーター関数を生成するために function* 式で省略された関数名です。詳細はfunctions をご覧ください。

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

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

仕様

仕様 ステータス コメント
ECMAScript 2015 (6th Edition, ECMA-262)
function* の定義
標準 初期定義。
ECMAScript Latest Draft (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 完全対応 あり
Trailing comma in parametersChrome 完全対応 58Edge 未対応 なしFirefox 完全対応 52IE 未対応 なしOpera 完全対応 45Safari ? WebView Android 完全対応 58Chrome Android 完全対応 58Firefox Android 完全対応 52Opera Android 完全対応 43Safari iOS ? Samsung Internet Android 完全対応 7.0nodejs 完全対応 8.0.0

凡例

完全対応  
完全対応
未対応  
未対応
実装状況不明  
実装状況不明

関連情報