Example :
var myFunctArray=new Array();
for(var i=0; i<10; i++) {
addValues(i);
}
function addValues(myPoint)
{
myFunct=function () {
var myVar="Line " + myPoint;
console.log(myVar);
}
myFunctArray.push(myFunct);
}
myFunctArray[3]();
when I call the 4° function, how can it remembers the value of myPoint? In fact it is Line 3 the output, so myPoint value must be “stored” somewhere, for each function.
So, it stores 10 “definitions” of myFunct in the stack memory?
Hope it is clear what I mean.
It’s called a closure. Any variables that are currently in scope when you create a new function are associated with that closure.