使用普通的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
)?
答案 0 :(得分:0)
您可以使用callee
对象的属性arguments
。 但请注意,callee
已从ES5严格模式中删除(不幸的是不知道ES6)。
所以你会得到类似的东西:
function* f () {console.log(arguments.callee.name);}
var g = new f();
g.next() // outputs `f`