Ключевое слово function*
может использоваться для объявления функции-генератора внутри выражения.
Синтаксис
function* [имя]([параметр1[, параметр2[, ..., параметрN]]]) { инструкции }
Параметры
имя
- Имя функции. Может быть опущено, в этом случае функция будет анонимной. Имя локально для тела функции.
параметрN
- Имя аргумента, передаваемого в функцию. Фунция может иметь до 255 аргументов.
инструкции
- Инструкции, составляющие тело функции.
Описание
Выражение function*
очень похоже на обявление function*
, и имеет почти такой же синтаксис. Основная разница между выражением function*
и объявлением function*
– в имени функции, которое может быть опущено в выражениях function*
для создания анонимных функций. Смотрите главу о функциях для получения более подробной информации.
Примеры
В следующем примере определяется безымянная функция-генератор и присваивается переменной x
. Функция возвращает квадрат своего аргумента:
var x = function*(y) {
yield y * y;
};
Спецификации
Спецификация | Статус | Комментарий |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) Определение 'function*' в этой спецификации. |
Стандарт | Изначальное определение. |
ECMAScript Latest Draft (ECMA-262) Определение 'function*' в этой спецификации. |
Черновик |
Совместимость с браузерами
We're converting our compatibility data into a machine-readable JSON format.
This compatibility table still uses the old format,
because we haven't yet converted the data it contains.
Find out how you can help!
Характеристика | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Базовая поддержка | (Да) | 26.0 (26.0) | ? | ? | ? |
yield* |
(Да) | 27.0 (27.0) | ? | ? | ? |
Характеристика | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Базовая поддержка | ? | (Да) | 26.0 (26.0) | ? | ? | ? |
yield* |
? | (Да) | 27.0 (27.0) | ? | ? | ? |