Leyendo algunos artículos de GraphQL con Apollo vi una sintaxis que me llamó la atención e incluso pensé que era un error. Luego leí otro artículo que explicaba justamente eso, y es lo que vengo a compartir: cómo llamar a una función sin usar paréntesis en el lenguaje de programación JavaScript
Esto tiene que ver con las backticks en JavaScript, o las llamadas plantillas de cadena. La magia que ofrecen va más allá de ofrecernos una simple concatenación sin usar operadores, además de un código más legible.
Lo que pasa es que estas string templates en JavaScript nos permiten llamar a una función sin usar paréntesis.
Bueno, sabemos que llamamos a una función así:
funcion();
O en caso de querer guardar el resultado, así:
let resultado = funcion();
También podemos llamarla con argumentos:
let resultado = funcion(miArgumento);
O con argumentos sin guardar el resultado:
funcion(miArgumento);
Pues con las template strings o backticks todo esto cambia. Podemos llamar a una función sin usar paréntesis.
Es casi como llamar a una función normal, pero no le ponemos paréntesis y en su lugar ponemos una template string. Vamos a definir esta función que te saluda:
const saludar = nombre => {alert("Hola " + nombre);}
Si no entiendes la sintaxis recomiendo leer: Funciones flecha en JavaScript
A esa función, normalmente la podemos llamar así:
saludar("Luis");
Pero oh sí, también así:
saludar`Luis`;
Ahí no usamos paréntesis. También podemos dejar un espacio entre la función y la template string:
saludar `Luis`;
Pero si creemos que es una simple cadena y que incluso así funcionará estamos equivocados, porque si le pasamos una simple cadena así:
saludar"Luis";
Esto sucede:
Dentro de nuestra función también podemos leer los valores de la plantilla de cadena, los que son como ${valor}
Vamos a crear esta función cuyos parámetros serán un arreglo y muchos valores (una función con infinitos argumentos):
const leer = (cadenas, ...valores) => { console.log("Las cadenas son: ", cadenas); console.log("Los valores son: ", valores); }
Ahora llamemos a esa función con un template string como argumento:
leer`Hola mundo, saben cuánto es 10 + 1? Es ${10 + 1}. Y 2 elevado a la 31 es ${2 ** 31}`;
Con el siguiente resultado:
Como vemos, cada cadena que está separada por un ${} forma parte del arreglo del primer argumento. Y todos los resultados de las expresiones que estén entre ${} forman parte del segundo argumento.
Así podemos traer más poder al combinar estas funciones y las string templates.
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos…
Esta web usa cookies.