Entiende los closures de JavaScript

Clase 16 de 51Fundamentos de JavaScript 2017

Resumen

Los closure son funciones que recuerdan el entorno en el cual fuerón creadas, esto quiere decir que al llamar la función van a recordar las variables que tenian en ese momento. Por ejemplo, si queremos hacer una función para saludar determinada familia

function saludarFamilia(apellido) {
  return function(nombre) {
    console.log(`Hola ${nombre} ${apellido}`)
  }
}

let saludarPerez = saludarFamilia('perez');
``

De esta forma podemos crear nuevas funciones partiendo de funciones que recuerdan variables internas