1
此代碼迭代通過發電機在ES6
let func = function *(){
for (let i = 1; i < 5; i++) {
yield i;
}
}
let s = func().next();
console.log(s);
let s2 = func().next();
console.log(s2);
返回
Object {value: 1, done: false}
Object {value: 1, done: false}
所以基本上FUNC產量第一值的所有時間。
但是,當我改變
let f = func();
let s = f.next();
console.log(s);
let s2 = f.next();
console.log(s2);
它按預期工作。 爲什麼將func分配給變量會產生這樣的差異?
因爲' func()!== func()'? – Bergi
如果它的行爲不同,那麼每個生成器函數只能使用*一次* ... –