function* keyword 는 표현식 내에서 generator function 을 정의합니다.
Syntax
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)합니다.
var x = function*(y) {
yield y * y;
};
Specifications
| Specification | Status | Comment |
|---|---|---|
| ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'function*' in that specification. |
Standard | Initial definition. |
| ECMAScript (ECMA-262) The definition of 'function*' in that specification. |
Living Standard |
Browser compatibility
Update compatibility data on GitHub
| Desktop | Mobile | Server | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
function* | Chrome Full support 49 | Edge Full support 12 | Firefox Full support 26 | IE No support No | Opera Full support 36 | Safari Full support 10 | WebView Android Full support 49 | Chrome Android Full support 49 | Firefox Android Full support 26 | Opera Android Full support 36 | Safari iOS Full support 10 | Samsung Internet Android Full support 5.0 | nodejs Full support 4.0.0 |
| Trailing comma in parameters | Chrome Full support 58 | Edge Full support 79 | Firefox Full support 52 | IE No support No | Opera Full support 45 | Safari Full support 10 | WebView Android Full support 58 | Chrome Android Full support 58 | Firefox Android Full support 52 | Opera Android Full support 43 | Safari iOS Full support 10 | Samsung Internet Android Full support 7.0 | nodejs Full support 8.0.0 |
Legend
- Full support
- Full support
- No support
- No support