Вираз function*

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

Синтаксис

function* [name]([param1[, param2[, ..., paramN]]]) {
   statements
}

Параметри

name
Ім'я функції. Можна пропустити, в цьому випадку функція буде анонімною. Ім'я доступне тільки всередині тіла функції.
paramN
Ім'я аргументу, що передається у функцію. Функція може мати до 255 аргументів.
statements
Інструкції, що складають тіло функції.

Опис

Вираз function* дуже схожий та має практично однаковий синтаксис з оператором function*. Головна відмінність між виразом function* та оператором function* - це ім'я функції, яке можна не вказувати у виразах function*, щоб створювати анонімні функції-генератори. Дивіться також більше інформації у главі про функції.

Приклади

Наступний приклад визначає безіменну функцію-генератор та присвоює її змінній x. Ця функція видає квадрат свого аргументу:

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

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

Специфікація Статус Коментар
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'function*' in that specification.
Standard Початкове визначення.
ECMAScript (ECMA-262)
The definition of 'function*' in that specification.
Living Standard

Сумісність з веб-переглядачами

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
function*Chrome Full support 49Edge Full support 12Firefox Full support 26IE No support NoOpera Full support 36Safari Full support 10WebView Android Full support 49Chrome Android Full support 49Firefox Android Full support 26Opera Android Full support 36Safari iOS Full support 10Samsung Internet Android Full support 5.0nodejs Full support 4.0.0
Trailing comma in parametersChrome Full support 58Edge Full support 79Firefox Full support 52IE No support NoOpera Full support 45Safari Full support 10WebView Android Full support 58Chrome Android Full support 58Firefox Android Full support 52Opera Android Full support 43Safari iOS Full support 10Samsung Internet Android Full support 7.0nodejs Full support 8.0.0

Legend

Full support  
Full support
No support  
No support

Див. також