¿Qué formas de crear funciones conoces?
sobes.tech AI
Respuesta de la IA
Existen varias formas de crear funciones en JavaScript, cada una con sus propias características:
-
Declaraciones de funciones: Forma clásica de crear funciones. Se elevan (hoisted) hacia arriba en el ámbito, lo que permite llamarlas antes de su declaración.
// Declaración de función con function function greet(name) { return "¡Hola, " + name + "!"; } -
Expresiones de funciones: La función se crea como parte de una expresión y se asigna a una variable. No se elevan (not hoisted) en la misma medida que las declaraciones de funciones.
// Expresión funcional const greet = function(name) { return "¡Hola, " + name + "!"; }; -
Funciones flecha: Forma sintáctica abreviada para expresiones de funciones. Se diferencian de las funciones clásicas en las características de
thisy la ausencia de sus propios argumentos (arguments).// Función flecha const greet = (name) => { return "¡Hola, " + name + "!"; }; // Forma abreviada con retorno implícito const greetShort = (name) => "¡Hola, " + name + "!"; -
Funciones constructoras: Se usan para crear objetos. Se llaman con la palabra clave
new.// Función constructora function Person(name, age) { this.name = name; this.age = age; } // Creación de una instancia con el constructor const person1 = new Person("Aleksei", 30); -
Métodos de clase: En las clases (azúcar sintáctico sobre la herencia prototípica), las funciones se definen como métodos.
// Declaración de clase con método class Greeter { greet(name) { return "¡Hola, " + name + "!"; } } // Creación de una instancia y llamada al método const greeter = new Greeter(); const message = greeter.greet("Mundo"); -
Expresiones de funciones inmediatamente invocadas (IIFE): Expresión de función que se ejecuta inmediatamente después de su creación. Se usa para crear un ámbito local.
// IIFE (function() { // Código dentro del IIFE console.log("¡Esta función se ejecuta de inmediato!"); })();
Cada método tiene sus ventajas y desventajas, y la elección depende de la tarea y el contexto específicos.