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® 2025 Language Specification
# sec-generator-function-definitions

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

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
function* expression
Trailing comma in parameters

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

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