【发布时间】:2013-05-21 05:38:03
【问题描述】:
我在 Nodejs v0.11.2 中使用过生成器,我想知道 如何检查我的函数的参数是生成器函数。
我找到了这种方式typeof f === 'function' && Object.getPrototypeOf(f) !== Object.getPrototypeOf(Function),但我不确定这是否是好的(并且在未来工作)方式。
你对这个问题有什么看法?
【问题讨论】:
-
非常确定
f instanceof GeneratorFunction应该可以工作,基于当前 ES6 草案的 15.19.3.1 The GeneratorFunction Constructor。 -
nodejs v0.11.2 没有 GeneratorFunction 所以我认为 v8 v3.19.0 也没有它。但是是的,这个检查会简单得多。
-
该构造函数似乎是最新草案的新增内容。搜索上一个,我没有找到那个文本。假设它保留在规范中,我想它会在某个时候出现。 编辑: ...啊,是的,我在更改说明中看到它“为生成器函数和生成器方法定义添加语义” ...所以看起来它刚刚登陆10 天前。
-
我看到由于一些测试问题github.com/v8/v8/commit/…,此更改已从 v8 中删除
-
一定有什么!!!生成器不同于函数..
标签: javascript generator yield ecmascript-6