--- title: function* expression slug: Web/JavaScript/Reference/Operators/function* tags: - ECMAScript6 - Function - Generator - JavaScript translation_of: Web/JavaScript/Reference/Operators/function* ---
function* keyword 는 표현식 내에서 generator function 을 정의합니다.
function* [name]([param1[, param2[, ..., paramN]]]) {
statements
}
nameparamNstatementsfunction* expression 은 {{jsxref('Statements/function*', 'function* statement')}} 과 매우 유사하고 형식도 같습니다. function* expression 과 function* statement 의 주요한 차이점은 함수명으로, function* expressions 에서는 익명 함수로 만들기 위해 함수명이 생략될 수 있습니다.보다 자세한 내용은 functions 을 참조하십시오.
아래의 예제는 이름이 없는 generator function 을 정의하고 이를 x 에 할당합니다. function 은 인자로 들어온 값의 제곱을 생산(yield)합니다.
var x = function*(y) {
yield y * y;
};
| Specification | Status | Comment |
|---|---|---|
| {{SpecName('ES2015', '#', 'function*')}} | {{Spec2('ES2015')}} | Initial definition. |
| {{SpecName('ESDraft', '#', 'function*')}} | {{Spec2('ESDraft')}} |
{{Compat("javascript.operators.function_star")}}