function* expression

Ключевое слово 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 2017 Draft (ECMA-262)
Определение 'function*' в этой спецификации.
Черновик  

Совместимость с браузерами

Характеристика 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) ? ? ?

Смотрите также

Метки документа и участники

 Внесли вклад в эту страницу: KTatyana, nurbek-ab
 Обновлялась последний раз: KTatyana,