Callback: ¿qué son las funciones callback?
JavaScript es uno de los lenguajes más populares para crear sitios web. Las posibilidades que ofrece este lenguaje de secuencias de comandos se aprovechan para diseñar páginas interactivas que sean capaces de reaccionar a las solicitudes. Para ello, se emplean variables, objetos y funciones en el marco del lenguaje. Todos ellos pueden recurrir los unos a los otros y siempre reflejan el mismo resultado en diferentes navegadores. Detrás de la mayoría de los botones o las pantallas de contenido que aparecen en un momento determinado en los sitios web, se encuentra una función callback.
Sin embargo, las funciones de este tipo no son exclusivas de JavaScript: otros lenguajes de programación conocidos, como C, Java, PHP o Python, también utilizan el callback para pasar ciertos parámetros de usuario de la forma más fácil.
¡Consigue tu dominio gratis con IONOS!
- Simple
- Seguro
- Asistencia 24/7
¿Qué es un callback?
Las funciones siempre se referencian a determinados parámetros. Si asignas una función como parámetro a otra función, hablaremos de un callback. Las funciones callback suelen utilizarse mucho en bibliotecas y frameworks, como las aplicaciones JavaScript jQuery, Angular o node.js. Estas aplicaciones son adecuadas para crear funciones extensibles y se ejecutan únicamente después de que tenga lugar otro evento o circunstancia.
¿Cómo funciona un callback?
La función callback siempre tiene un efecto determinado que está relacionado con ciertas circunstancias. En otras palabras, solo se invoca si ha tenido lugar otra acción claramente definida. Un buen ejemplo de función callback son los controladores de eventos, que se utilizan, por ejemplo, en elementos HTML como los botones. El evento podría ser un clic del ratón que hace que se ejecute el callback, y la función en sí misma podría provocar el redireccionamiento a otra página o transmitir un valor que se haya introducido en un formulario.
La principal diferencia entre una función normal y un callback sería la siguiente: si bien una función normal se ejecuta directamente, la función callback solo se define y se llama y ejecuta únicamente cuando ocurre un evento concreto. Como hemos mencionado, las funciones callback se utilizan en numerosos lenguajes de programación y, aunque la sintaxis y la estructura de los métodos difieren, sus principios se mantienen en todos los lenguajes.
Función callback en JavaScript
Las funciones callback son ampliamente utilizadas en la programación con JavaScript. Puede tratarse, por ejemplo, de una función que se ejecuta al pulsar un botón o de algún contenido relacionado con una función setTimeout (), que provoca un retraso de tiempo.
Un ejemplo simple de un callback en JavaScript sería un botón común y corriente:
document.getElementById("Button1").addEventListener("click", function() {
console.log("Se ha pulsado el botón");
}, false);
En este ejemplo, se utiliza un EventListener como callback que se activa cuando se produce un determinado evento; en este caso, hacer clic en el botón identificado como “Button1”. En cuanto se hace clic en el botón y se cumplen las condiciones para la función callback, esta se ejecuta y el terminal emite el mensaje “Se ha pulsado el botón”. Para garantizar la compatibilidad con versiones anteriores del navegador, en el ejemplo también se utiliza el parámetro “false”.
Función callback en PHP
En PHP, las funciones callback se ejecutan de manera similar a JavaScript. Sin embargo, en este lenguaje de secuencias de comandos, las funciones callback también pueden ser métodos de un objeto, incluidos los métodos de clase estática.
Este sería un ejemplo de una función clásica de callback en PHP:
function my_callback_function() {
echo '¡Hola, mundo!';
}
Al llamar esta función, se genera el string “¡Hola, mundo!”. Para ejecutar al callback como método, procede de la siguiente manera:
class MyClass {
static function myCallbackMethod() {
echo '¡Hola, mundo!';
}
}
En PHP, los callbacks son un método muy utilizado para que las funciones se comuniquen entre sí. Suelen emplearse para implementar plugins o módulos de manera limpia y para garantizar su funcionalidad.
Funciones callback en Python
Python es uno de los lenguajes de programación más populares debido a su simple sintaxis. Gracias a la versatilidad que ofrece, tanto en software, como en hardware, este lenguaje es perfecto para iniciarse en la programación. Se utiliza especialmente en los ámbitos de la ciencia de datos y el aprendizaje automático y presenta muchas ventajas sobre otros lenguajes.
En Python, el callback se utiliza principalmente para asignar diferentes eventos a elementos de la interfaz de usuario. En el siguiente ejemplo, se definen dos funciones, es decir, el callback “get_square” y la llamada “caller”. Finalmente, se ejecuta el callback:
>>> def get_square(val):
return val ** 2
>>> def caller(func, val):
return func(val)
>>> caller(get_square, 5)
La sintaxis de la función callback es muy sencilla, similar a la de JavaScript y PHP.
Funciones callback en Java
Es bastante inusual ejecutar una función callback en Java. Técnicamente, se puede hacer, pero requiere la función de reflexión. Con esta función se establecen métodos y funciones que se procesan en objetos. Por consecuencia, la función de reflexión es más una función de biblioteca que un callback.
El principio SAX también funciona de manera similar a la función callback en Java. En este caso, el analizador SAX lee un archivo XML y llama a algún método de callback concreto en función del evento entrante. Entre ellos, se incluyen los métodos startDocument() y startElement().
Funciones callback en C
En el lenguaje de programación C, las funciones callback pueden incorporarse de manera similar a JavaScript. Este lenguaje, que suele utilizarse para programar sistemas y aplicaciones, es una parte integral de la programación de núcleos de sistemas y sistemas operativos. Muchos lenguajes de programación, como JavaScript, PHP, C++, Java o C#, se basan mucho en la sintaxis y las propiedades de C. Por lo tanto, la sintaxis y los métodos de los diferentes lenguajes también coinciden en muchos aspectos.
Este sería un ejemplo de función callback en C:
void A()
{
printf("Soy una función A\n");
}
// La función callback
void B(void (*ptr)())
{
(*ptr) (); // Aquí se invoca el callback de A
}
int main()
{
void (*ptr)() = &A;
// Se ejecuta la función B
// La función A se pasa como argumento
B(ptr);
return 0;
}
En consecuencia, la salida de este código es: “Soy una función A”. Al igual que en JavaScript, las funciones callback siempre se ejecutan cuando ocurre un evento determinado. En C, estas funciones se utilizan para crear diversas bibliotecas nuevas para el desarrollo posterior de los programas y para generar señales desde el núcleo necesarias a la hora de gestionar eventos asíncronos.
- Creación y personalización de tu página asistida por la IA
- 3 veces más rápido: SSD, caché y más
- Análisis diarios, protección DDoS y disponibilidad del 99,98 %