Skip to main content
0:00est. 3 min

Closure

// https://lucybain.com/blog/2014/closures/

function notAClosure(anotherShortLivedVariable) {
return anotherShortLivedVariable;
}

console.log(notAClosure('hi'));
console.log(notAClosure('hi1'));
console.log(notAClosure('hi2'));

function aClosure(longLivedVariable) {

let innerFunction = function innner() {
return longLivedVariable
}

return innerFunction
}

var closure = aClosure("body")
console.log(closure());
console.log(closure());

function cat(name) {
return {
sayName: () => {
return name
}
}
}

const msFloofy = cat("Madam Fluff");
console.log(msFloofy.sayName())
console.log(msFloofy.sayName())

var whiskers = cat('Whiskers');
console.log(whiskers.sayName()) // returns 'Whiskers'