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 ÑенÑÑбÑÑ 2016 г..
ÐлÑÑевое Ñлово function* Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð´Ð»Ñ Ð¾Ð±ÑÑÐ²Ð»ÐµÐ½Ð¸Ñ ÑÑнкÑии-генеÑаÑоÑа внÑÑÑи вÑÑажениÑ.
СинÑакÑиÑ
function* [имÑ]([паÑамеÑÑ1[, паÑамеÑÑ2[, ..., паÑамеÑÑN]]]) {
инÑÑÑÑкÑии
}
ÐаÑамеÑÑÑ
имÑ-
ÐÐ¼Ñ ÑÑнкÑии. ÐÐ¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾Ð¿ÑÑено, в ÑÑом ÑлÑÑае ÑÑнкÑÐ¸Ñ Ð±ÑÐ´ÐµÑ Ð°Ð½Ð¾Ð½Ð¸Ð¼Ð½Ð¾Ð¹. ÐÐ¼Ñ Ð»Ð¾ÐºÐ°Ð»Ñно Ð´Ð»Ñ Ñела ÑÑнкÑии.
паÑамеÑÑN-
ÐÐ¼Ñ Ð°ÑгÑменÑа, пеÑедаваемого в ÑÑнкÑиÑ. ФÑнкÑÐ¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð¼ÐµÑÑ Ð´Ð¾ 255 аÑгÑменÑов.
инÑÑÑÑкÑии-
ÐнÑÑÑÑкÑии, ÑоÑÑавлÑÑÑие Ñело ÑÑнкÑии.
ÐпиÑание
ÐÑÑажение function* оÑÐµÐ½Ñ Ð¿Ð¾Ñ
оже на обÑÑвление function*, и Ð¸Ð¼ÐµÐµÑ Ð¿Ð¾ÑÑи Ñакой же ÑинÑакÑиÑ. ÐÑÐ½Ð¾Ð²Ð½Ð°Ñ ÑазниÑа Ð¼ÐµÐ¶Ð´Ñ Ð²ÑÑажением function* и обÑÑвлением function* â в имени ÑÑнкÑии, коÑоÑое Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾Ð¿ÑÑено в вÑÑажениÑÑ
function* Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð°Ð½Ð¾Ð½Ð¸Ð¼Ð½ÑÑ
ÑÑнкÑий. СмоÑÑиÑе Ð³Ð»Ð°Ð²Ñ Ð¾ ÑÑнкÑиÑÑ
Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ подÑобной инÑоÑмаÑии.
ÐÑимеÑÑ
Ð ÑледÑÑÑем пÑимеÑе опÑеделÑеÑÑÑ Ð±ÐµÐ·ÑмÑÐ½Ð½Ð°Ñ ÑÑнкÑиÑ-генеÑаÑÐ¾Ñ Ð¸ пÑиÑваиваеÑÑÑ Ð¿ÐµÑеменной x. ФÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ ÐºÐ²Ð°Ð´ÑÐ°Ñ Ñвоего аÑгÑменÑа:
var x = function* (y) {
yield y * y;
};
СпеÑиÑикаÑии
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-generator-function-definitions> |