A closure:
function test() {
var count = 0;
return function() {
count++;
};
}
As we all know, the count
won\'t rele
closures is a massive source of memory leaks in JavaScript.
function foo() {
var count = 0;
function do() {
return count++;
}
return {
do: do}
}
Here foo() return the do function expression and do() have closure over th e count variable. We don't know when the returned do() expression will be called. So the garbage collector can't understand when to release the memory. So we need to manually release it after its usage.