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但是请注意callee它已从 ES5 严格模式中删除(不幸的是,不知道 ES6)。

所以你会得到类似的东西:

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