6 particularidades que nos ofrecen las funciones en JavaScript y que lo hacen un leguaje muy versátil.
Javascript es un lenguaje muy potente y con una aproximación
funcional que nos da muchas oportunidades.
Pero al mismo tiempo, al tener tantos modos de trabajar y tipos de funciones
puede llegar a ser un poco confuso.
Por eso es interesante conocer las características que hacen que las funciones en Javascript
sean tan especiales y potentes.
-
Las funciones son objetos.
A diferencia de otros lenguajes de programación es que las funciones son objetos, por lo que se pueden asignar a variables, crear en tiempo de ejecución o destruir.
Because #JS is a functional object-oriented language, functions can have methods #JSthegoodparts
— Carles Hervera (@chervera) 1 de marzo de 2019 -
Las funciones en Javascript pueden ser anónimas o tener nombre.
Debido a una propiedad de Javascript llamada "hoisting", una función con nombre, se puede usar antes de ser declarada, ya que todas las declaraciones se mueven al principio del ámbito.
Si son anónimas, podrán ser asignadas a variables y usadas como otra variable más.let total = suma(1,5); function suma(a, b){ return a + b; }
let operacion = function(a, b){ return a + b; } let resultado = operacion(1,5); operacion = function(a, b){ return a - b; } resultado = operacion(4,1);
-
Los parámetros que se le pueden pasar a una función, son "infinitos"
Aunque una función defina dos parámetros de entrada o incluso ninguno, es posible pasar los parámetros que consideremos necesarios, más o menos y estos estarán disponibles en la función mediante el array arguments. Que esto sea una buena práctica ya es otro tema. -
Las funciones flecha y el uso del this
En las versiones más modernas de Javascript se han añadido las funciones flecha. Es un tipo de notación más sencilla y orientada a un tipo de programación más funcional. Son siempre anónimas y no pueden ser usadas como constructores. Se comportan casi igual excepto por el uso del this, que no define un this propio si no que utiliza el del contexto de ejecución que la contiene. -
Closures y visibilidad
Las funciones en javascript nos permiten crear closures y tratar la visibilidad de las propiedades o métodos.
Podemos crear funciones dentro de funciones, de esta forma solo serán accesibles dentro de la función padre.
Pasará lo mismo con las variables definidas dentro de las funciones. -
Tipos de funciones
Hay varios tipos de funciones que hay que conocer. Los más importantes son:
-
Funciones simples
function suma(a, b){ return a + b; }
-
Funciones anónimas
let suma = function(a, b){ return a + b; }
-
Funciones factoría
function createUser(name, age){ function sayHello(){ console.log('hello!'); } return {name: name, age: age, sayHello: sayHello} }
-
Funciones inmediatamente invocadas (IIFE)
(function(){ console.log("hello!"); })();
-
Funciones simples
Fotografía de portada de:
Taras Shypka