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 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOS 版 SafariSamsung InternetNode.js
基本対応Chrome 完全対応 ありEdge 完全対応 ありFirefox 完全対応 26IE 未対応 なしOpera 完全対応 ありSafari 完全対応 10WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 26Opera Android 完全対応 ありSafari iOS 完全対応 10Samsung Internet Android 完全対応 ありnodejs 完全対応 あり
Trailing comma in parametersChrome 完全対応 58Edge ? Firefox 完全対応 52IE ? Opera 完全対応 45Safari ? WebView Android 完全対応 58Chrome Android 完全対応 58Edge Mobile ? Firefox Android 完全対応 52Opera Android 完全対応 45Safari iOS ? Samsung Internet Android 完全対応 7.0nodejs 完全対応 8.0.0

凡例

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

関連情報

ドキュメントのタグと貢献者

このページの貢献者: dskmori, Uemmra3, ambi, shide55
最終更新者: dskmori,