La palabra clave function* puede ser utilizada para definir una función generadora en una expresión.

Sintaxis

function* [nombre]([param1[, param2[, ..., paramN]]]) {
   sentencias
}

Parámetros

nombre
Nombre de la función. Puede ser omitido, en cuyo caso la funcipón es anínima. El nombre sólo es local al cuerpo de la función.
paramN
Nombre de un parámetro a ser pasado a la función. Una función puede tener hasta 255 argumentos.
sentencias
Sentencias que componen el cuerpo de la función.

Descripción

Una expresión function* es muy similar y tiene casi la misma sintaxis que una function* statement. La principal diferencia entre una expresión function* y una sentencia function* es el nombre de la función, que en expresiones function* puede ser omitido para creaar funciones generadoras anónimas. Para más información vea también el capítulo acerca de funciones.

Ejemplos

El siguiente ejemplo define una función generadora sin nombre y la asigna a x. La función produce el cuadrado de su argumento:

var x = function*(y) {
   yield y * y;
};

Especificaciones

Especificación Estado Comentario
ECMAScript 2015 (6th Edition, ECMA-262)
La definición de 'function*' en esta especificación.
Standard Definición Inicial.
ECMAScript Latest Draft (ECMA-262)
La definición de 'function*' en esta especificación.
Draft  

Compatibilidad con navegadores

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung InternetNode.js
Soporte básicoChrome Soporte completo SiEdge Soporte completo SiFirefox Soporte completo 26IE Sin soporte NoOpera Soporte completo SiSafari Soporte completo 10WebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile Soporte completo SiFirefox Android Soporte completo 26Opera Android Soporte completo SiSafari iOS Soporte completo 10Samsung Internet Android Soporte completo Sinodejs Soporte completo Si
Trailing comma in parametersChrome Soporte completo 58Edge ? Firefox Soporte completo 52IE ? Opera Soporte completo 45Safari ? WebView Android Soporte completo 58Chrome Android Soporte completo 58Edge Mobile ? Firefox Android Soporte completo 52Opera Android Soporte completo 45Safari iOS ? Samsung Internet Android Soporte completo 7.0nodejs Soporte completo 8.0.0

Leyenda

Soporte completo  
Soporte completo
Sin soporte  
Sin soporte
Compatibility unknown  
Compatibility unknown

Vea también

Etiquetas y colaboradores del documento

Colaboradores en esta página: daniel.duarte
Última actualización por: daniel.duarte,