var foo = 1;
function bar(){
console.log(foo);
}
2. Las funciones pueden referir a variables definidas en funciones exteriores incluso después de que esas funciones hayan retornado.
function foo(){
var baz = 53;
function bar(){
console.log(baz);
}
return bar;
}
var fn = foo();
console.log(fn());
3. Las closures pueden modificar los valores de las variables del ámbito externo
var foo = 1;
function bar(){
foo = 5;
}
bar();
console.log(foo);
Aplicación parcial -> retorna una nueva función
Aplicación total -> retorna un valor
Dado una cadena de caracteres, buscar las palabras que contengan la letra recibida por parámetro
function contarApariciones(str, letra) {
var palabras = str.split(' ');
var contador = 0;
for (var i = 0; i < palabras.length; i++) {
for (var j = 0; j < palabras[i].length; j++) {
if (palabras[i][j] === letra) {
contador++;
break;
}
}
}
return contador;
}