【发布时间】:2015-12-09 07:29:37
【问题描述】:
如果我为一个对象定义一个迭代器并创建一个实例,我可以像预期的那样对这些值进行迭代:
class Hello {
*[Symbol.iterator]() {
yield 5;
}
*iterator (value) {
yield value;
}
}
var hello = new Hello();
for (let val of hello) {
console.log(val); // 5
}
for (let val of hello.iterator('wow')) {
console.log(val); // 'wow'
}
在前面的示例中,[Symbol.iterator] 被声明为生成器。我可以声明另一个生成器并将参数传递给它,但是有没有办法将参数传递给默认迭代器?
我尝试了以下方法,但它引发了错误:
for (let val of hello('wow')) {
console.log(val); // 5
}
// Uncaught TypeError: hello is not a function
我错过了什么吗?或者这是不可能的?
【问题讨论】:
标签: javascript generator ecmascript-6