December 2016
Intermediate to advanced
841 pages
17h
English
Closures are one of the most powerful features available at runtime, but they are also one of the most misunderstood. The Mozilla developer network defines closures as follows:
"Closures are functions that refer to independent (free) variables. In other words, the function defined in the closure 'remembers' the environment in which it was created."
We understand independent (free) variables as variables that persist beyond the lexical scope from which they were created. Let's take a look at an example:
function makeArmy() {
var shooters = []
for(var i = 0; i < 10; i++) {
var shooter = function() { // a shooter is a function
alert(i) // which should alert it's number
}
shooters.push(shooter)
}
return shooters;
}We have declared a function ...
Read now
Unlock full access