DEV Community

Paracetamol.js💊| #10: ¿Qué imprime este código JavaScript?

Cristian Fernando on January 14, 2022

¿Qué imprime este código JavaScript? function bark() { console.log("Woof!"); } bark.animal = "dog"; Enter fullscreen mode ...
Collapse
 
duxtech profile image
Cristian Fernando • Edited

La respuesta es:
A: No pasa nada, es totalmente correcto.

WTF! Cuando vi que hacer esto es posible casi me caigo de la silla. Expliquemos por que:

Oiste o leiste alguna vez esta frase: "Todo en JavaScript es un objeto" Dejame decirte que no es mentira, literalmente todo es un objeto, todo lo que no sea un tipo primitivo en JavaScript es un objeto, desde arreglos, los propios objetos claro, las promesas, y también las funciones.

En el ejemplo, la función bark() funciona completamente bien:

function bark() {
  console.log("Woof!");
}
console.log(bark()) // Woof!
Enter fullscreen mode Exit fullscreen mode

Y si intentamos acceder a la propiedad animal no tendremos ningún problema:

function bark() {
  return "Woof!"
}

bark.animal = "dog";
console.log(bark.animal); // dog
Enter fullscreen mode Exit fullscreen mode

Este es un comportamiento muy jocoso del lenguaje y esta bueno saber que es posible hacer estas cosas aunque no tenga muchos casos de uso.