Paso de Objetos y Funciones como Parámetros
En JavaScript, no solo puedes pasar valores simples como números o cadenas de texto a una función, sino también objetos y funciones. Esto te permite crear funciones muy poderosas y flexibles.
1. Paso de Objetos como Parámetros #
Cuando pasas un objeto como parámetro a una función, la función recibe una referencia al objeto, no una copia. Esto significa que cualquier cambio que hagas al objeto dentro de la función afectará al objeto original.
Ejemplo de paso de objetos como parámetros:
1function actualizarNombre(persona, nuevoNombre) { 2 persona.nombre = nuevoNombre; 3} 4 5let usuario = { nombre: "Ana", edad: 25 }; 6console.log(usuario.nombre); // Muestra "Ana" 7 8actualizarNombre(usuario, "Carlos"); 9console.log(usuario.nombre); // Muestra "Carlos"Salida de consola Ana Carlos
En este ejemplo:
usuarioes un objeto que se pasa como parámetro a la funciónactualizarNombre.- Dentro de la función, cambiamos la propiedad
nombredel objeto. - Como
usuarioes una referencia al mismo objeto, el cambio se refleja fuera de la función.
Paso de Funciones como Parámetros (Funciones Callback) #
En JavaScript, las funciones son ciudadanos de primera clase, lo que significa que puedes tratarlas como cualquier otro valor. Esto incluye pasarlas como parámetros a otras funciones.
Una función que se pasa como parámetro a otra función se llama callback. Los callbacks son muy útiles para ejecutar funciones después de que se haya completado una tarea, como cuando se recibe una respuesta de un servidor.
Ejemplo de paso de funciones como parámetros:
1function procesarUsuario(nombre, callback) { 2 console.log("Procesando usuario: " + nombre); 3 callback(nombre); 4} 5 6function mostrarSaludo(nombre) { 7 console.log("¡Hola, " + nombre + "!"); 8} 9 10procesarUsuario("Ana", mostrarSaludo); 11// Muestra "Procesando usuario: Ana" y luego "¡Hola, Ana!"Salida de consola Procesando usuario: Ana ¡Hola, Ana!
En este ejemplo:
mostrarSaludoes una función que se pasa como parámetro (callback) aprocesarUsuario.procesarUsuarioejecutamostrarSaludodespués de procesar el nombre.
Los callbacks son una parte fundamental de la programación asincrónica en JavaScript, y se utilizan ampliamente en eventos, promesas y funciones asíncronas.
Funciones Anónimas y Funciones Flecha como Callbacks #
Puedes pasar una función anónima o una función flecha como parámetro directamente dentro de la llamada a otra función.
Ejemplo con función anónima:
1procesarUsuario("Carlos", function(nombre) { 2 console.log("¡Bienvenido, " + nombre + "!"); 3});
Ejemplo con función flecha:
1procesarUsuario("Luis", (nombre) => { 2 console.log("¡Hola de nuevo, " + nombre + "!"); 3});
Ambos ejemplos funcionan de manera similar a los anteriores, pero son más concisos.
Las funciones anónimas y de tipo flecha se usan ampliamente en JavaScript para escribir código más conciso y legible.
Resumen del tema
Conceptos clave #
- Paso de Objetos (Por Referencia compartida): al pasar un objeto/array como argumento, la función recibe la referencia a la misma dirección en memoria, por lo que mutar sus propiedades modifica el objeto exterior.
- Funciones como Ciudadanos de Primera Clase (First-Class Citizens): las funciones pueden asignarse a variables, devolverse desde otras funciones o pasarse como argumentos.
- Patrón Callback: función que se pasa como argumento a otra para ser invocada posteriormente (síncrona o asíncronamente), ya sea declarada, anónima o en formato flecha.
Qué debes recordar #
Los objetos pasados a una función pueden ser mutados dentro de ella por compartición de referencia, y las funciones pueden pasarse como argumentos (callbacks) para modular el comportamiento.