From a55b575e8089ee6cab7c5c262a7e6db55d0e34d6 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 14:46:50 +0100 Subject: unslug es: move --- files/es/glossary/first-class_function/index.html | 111 ++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 files/es/glossary/first-class_function/index.html (limited to 'files/es/glossary/first-class_function/index.html') diff --git a/files/es/glossary/first-class_function/index.html b/files/es/glossary/first-class_function/index.html new file mode 100644 index 0000000000..311f068470 --- /dev/null +++ b/files/es/glossary/first-class_function/index.html @@ -0,0 +1,111 @@ +--- +title: Funcion de primera clase +slug: Glossary/Funcion_de_primera_clase +translation_of: Glossary/First-class_Function +--- +

Un lenguaje de programación se dice que tiene Funciones de primera clase cuando las funciones en ese lenguaje son tratadas como cualquier otra variable. Por ejemplo, en ese lenguaje, una función puede ser pasada como argumento a otras funciones, puede ser retornada por otra función y puede ser asignada a una variable.

+ +

Ejemplo | Asignar función a una variable

+ +

JavaScript

+ +
const foo = function() {
+   console.log("foobar");
+}
+// Invocación usando una variable
+foo();
+
+ +

Asignamos una Función Anónima a una {{glossary("Variable")}}, la cual utilizamos para invocar la función añadiendo paréntesis () al final.

+ +
+

Aunque la función no sea anónima (función nombrada), se puede utilizar la variable para invocarla. Nombrar las funciones puede ser útil cuando estamos depurando el código. Pero no afectará como invocamos a la función.

+
+ +

Ejemplo | Pasar la función como argumento

+ +

JavaScript

+ +
function diHola() {
+   return "Hola ";
+}
+function saludar(saludo, nombre) {
+  console.log(saludo() + nombre);
+}
+// Pasamos `diHola` como argumento de la función `saludar`
+saludar(diHola, "JavaScript!");
+
+ +

Pasamos nuestra función diHola() como argumento de la función saludar(), esto explica como tratamos la función como un valor.

+ +
+

Una función que pasamos como argumento a otra función, se llama {{glossary("Callback function")}}. diHola es una función Callback.

+
+ +

Ejemplo | Devolver una función

+ +

JavaScript

+ +
function diHola() {
+   return function() {
+      console.log("¡Hola!");
+   }
+}
+
+ +

En este ejemplo; Necesitamos devolver una función desde otra función - Podemos devolver una función porque JavaScript trata la función como un value.

+ +
+

Una función que devuelve una función se llama Higher-Order Function.

+
+ +

Volviendo al ejemplo; Ahora, necesitamos invocar la función diHola y su  Función Anónima devuelta. Para ello, tenemos dos maneras:

+ +

1- Usando una variable

+ +
const diHola = function() {
+   return function() {
+      console.log("¡Hola!");
+   }
+}
+const miFuncion = diHola();
+miFuncion();
+
+ +

De esta manera, devolverá el mensaje ¡Hola!.

+ +
+

Debes usar otra variable para que devuelve el mensaje. Si invocas diHola directamente, devolvera la función en si misma sin invocar a la función devuelta.

+
+ +

2- Usando paréntesis doble

+ +
function diHola() {
+   return function() {
+      console.log("¡Hola!");
+   }
+}
+diHola()();
+
+ +

Usamos parétesis dobre ()() para invocar también a la función retornada.

+ + + +

Aprender más

+ +

Conocimiento general

+ + -- cgit v1.2.3-54-g00ecf