0

通常の ECMAScript を使用すると、次のようなことができます。

function f () { console.log(this.constructor.name); }
new f() // outputs `f`

とはいえ、ちょっと改造して、

function* f () { console.log(this.constructor.name); }
var g = new f();
g.next() // outputs `GeneratorFunctionPrototype`

ジェネレーターの名前 ( f) を取得する方法はありますか?

4

1 に答える 1

0

オブジェクトのプロパティcalleeを使用できargumentsます。ただし、ES5 の厳密モードから削除されたことに注意してcalleeください (残念ながら ES6 についてはわかりません)。

したがって、次のようなものが得られます。

function* f () {console.log(arguments.callee.name);}
var g = new f();
g.next() // outputs `f`
于 2014-01-23T10:16:41.273 に答える