Может кто-нибудь объяснить мне: почему функции генератора в 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
?