function* expression

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.

Ключевое слово function* может использоваться для объявления функции-генератора внутри выражения.

Синтаксис

function* [имя]([параметр1[, параметр2[, ..., параметрN]]]) {
   инструкции
}

Параметры

имя

Имя функции. Может быть опущено, в этом случае функция будет анонимной. Имя локально для тела функции.

параметрN

Имя аргумента, передаваемого в функцию. Функция может иметь до 255 аргументов.

инструкции

Инструкции, составляющие тело функции.

Описание

Выражение function* очень похоже на объявление function*, и имеет почти такой же синтаксис. Основная разница между выражением function* и объявлением function* – в имени функции, которое может быть опущено в выражениях function* для создания анонимных функций. Смотрите главу о функциях для получения более подробной информации.

Примеры

В следующем примере определяется безымянная функция-генератор и присваивается переменной x. Функция возвращает квадрат своего аргумента:

js
var x = function* (y) {
  yield y * y;
};

Спецификации

Specification
ECMAScript Language Specification
# sec-generator-function-definitions

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

BCD tables only load in the browser

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