Si algún lenguaje de programación tiene la capacidad de tratar funciones como valores, pasarlas como argumentos y devolver una función desde otra función, entonces se dice que el lenguaje de programación tiene funciones de primera clase y las funciones se denominan ciudadanos de primera clase en ese lenguaje de programación. .
Las funciones son muy importantes y poderosas en JavaScript. JavaScript tiene todas aquellas capacidades o características que se requieren para ser un lenguaje con funciones de primera clase, por lo tanto, las funciones se tratan como ciudadanos de primera clase. Veamos todas las capacidades de las funciones de un ciudadano de primera clase.
1. Capacidad para tratar funciones como valores: las funciones en JavaScript pueden tratarse como valores, es decir, una función puede almacenarse como un valor en una variable.
Javascript
<script> var greet = function() { console.log("Welcome to GeeksforGeeks!"); } greet(); </script>
Producción:
Welcome to GeeksforGeeks!
En el ejemplo anterior, una función se almacena en una variable saludar , y la variable entre paréntesis, es decir, saludar() llama al cuerpo de la función y muestra el resultado en la consola. La función anónima se usa en los lugares donde esa función se usa como un valor.
2. Capacidad de pasar una función como argumentos: las funciones en JavaScript también tienen la capacidad de pasar como argumentos a otra función. Veamos un ejemplo-
Javascript
<script> function teacher(){ return "Teacher"; } function student(){ return "Student"; } function greet(user){ console.log("Welcome", user()); } // Prints "Welcome Teacher" var message = greet(teacher); // Prints "Welcome Student" var message = greet(student); </script>
Producción:
Welcome Teacher Welcome Student
En el ejemplo anterior, cuando pasamos el argumento en la función saludar() como profesor , pasa el cuerpo de la función profesor() y devuelve la string «Profesor», pero cuando pasamos el argumento en la función saludar() como estudiante , pasa el cuerpo de la función estudiante() y devuelve la string «Estudiante».
3. Habilidad de devolver una función desde otra función: Ahora, veamos un ejemplo de cómo devolver una función desde otra función en JavaScript-
Javascript
<script> var greet = function(){ return function(){ console.log("Welcome to GeeksforGeeks!"); } } greet()(); </script>
Producción:
Welcome to GeeksforGeeks!
Aquí, usamos los paréntesis dobles para invocar la función devuelta, por lo tanto, usamos greeting()(). El paréntesis simple llamará a la función en sí sin invocar su función devuelta. También podemos hacerlo almacenando la función en una variable como esta:
var func = greet(); func();
Las funciones que devuelven una función se denominan funciones de orden superior .
Como podemos ver, JavaScript tiene todas las habilidades y características requeridas para ser un lenguaje de programación con funciones de primera clase y, por lo tanto, las funciones en JavaScript se denominan ciudadanos de primera clase.