function* expression
BaselineWidely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.
function*
keyword 는 표현식 내에서 generator function 을 정의합니다.
시도해 보기
const foo = function* () { yield "a"; yield "b"; yield "c";};let str = "";for (const val of foo()) { str = str + val;}console.log(str);// Expected output: "abc"
Syntax
js
function* [name]([param1[, param2[, ..., paramN]]]) { statements }
Parameters
name
함수명. 생략하면, 익명 함수가 됩니다. 함수명은 함수내에만 한정됩니다.
paramN
함수에 전달되는 인수의 이름. 함수는 최대 255 개의 인수를 가질 수 있습니다.
statements
함수의 본체를 구성하는 구문들.
Description
function*
expression 은function* statement
과 매우 유사하고 형식도 같습니다.function*
expression 과function*
statement 의 주요한 차이점은 함수명으로,function*
expressions 에서는 익명 함수로 만들기 위해 함수명이 생략될 수 있습니다.보다 자세한 내용은functions 을 참조하십시오.
Examples
아래의 예제는 이름이 없는 generator function 을 정의하고 이를 x 에 할당합니다. function 은 인자로 들어온 값의 제곱을 생산(yield)합니다.
js
var x = function* (y) { yield y * y;};
명세서
Specification |
---|
ECMAScript® 2026 Language Specification # sec-generator-function-definitions |