--- title: function* expression slug: Web/JavaScript/Reference/Operators/function* tags: - ECMAScript6 - JavaScript - Итератор - Оператор - Функция translation_of: Web/JavaScript/Reference/Operators/function* ---
{{jsSidebar("Operators")}}

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

Синтаксис

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

Параметры

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

Описание

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

Примеры

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

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

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

{{Specifications}}

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

{{Compat}}

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