Какова цель звездочки (*) в функциях генератора ES6
Может кто-нибудь объяснить мне: почему функции генератора в ES6 отмечены символом звездочки?
Например, вместо:
function *someGenerator() {
yield 1;
yield 2;
yield 3;
}
мы могли бы написать:
function someGenerator() {
yield 1;
yield 2;
yield 3;
}
или даже:
var someGenerator = () => {
yield 1;
yield 2;
yield 3;
}
var someObject = {
someGenerator() {
yield 1;
yield 2;
yield 3;
}
}
JS-компилятор может обнаружить, чтоsomeGenerator
содержитyield
оператор на время разбора и сделать генератор из этой функции.
Почему обнаружениеyield
существования недостаточно?