1

次のようにジェネレーターを呼び出す方法:

const scenarioProvider = (function*() {
    ....
}).bind(this)();

アロー関数構文による。「bind(this)」を新しい「レキシカル this」に置き換えるという意味です。

4

2 に答える 2

3

これは現在不可能であり、ecmascript の将来のバージョンに含まれる可能性はありません。

みんなに知らせるために (近日中に予定されている会議メモでこれが明確になります)、ジェネレーターの矢印を使用しないことに同意しました。ここで特定された種類のトラブルが多すぎます...

出典:ブレンダン・アイヒ @esdiscuss

于 2015-11-12T20:19:30.660 に答える
1

アロー関数は、定義上、レキシカル スコープです。アロー関数でジェネレーターを使用することはできません

ただし、矢印関数をバインドできないことに注意してください。

MDNの状態:

アロー関数式 (太いアロー関数とも呼ばれます) は、関数式に比べて構文が短く、この値を字句的にバインドします (独自の this、引数、super、または new.target をバインドしません)。アロー関数は常に無名です。

于 2015-11-12T20:19:50.110 に答える