【发布时间】:2018-09-25 01:44:36
【问题描述】:
我不明白以下错误的含义。我想要做的是存储对 myIteratble[Symbol.iterator] 的引用并稍后调用它。但我收到以下错误。
let str = 'foo';
let gen = str[Symbol.iterator];
console.log(typeof gen); // 'function'
let it = gen(); // ERROR: Can't convert undefined to object.
为什么我不能调用 gen?我意识到我可以通过以下 hack 解决这个问题:
let gen = function* () {
let it = str[Symbol.iterator]();
for (let n = it.next(); !n.done; n = it.next()) {
yield n.value;
}
}
但我想了解这里发生了什么。
【问题讨论】:
标签: javascript iterator symbols