Thanks to visit codestin.com
Credit goes to developer.mozilla.org

This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

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년 9월⁩.

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

브라우저 호환성

See also