Closures
Closures Demos
by refan
JavaScript
for (var i = 1; i <= 5; i++) {
setTimeout(function() {
console.log("i:" + i);
}, i * 1000);
}
for (var i = 1; i <= 5; i++) {
(function(i) {
setTimeout(function() {
console.log("i:" + i);
}, i * 1000);
})(i);
};
var testModule = (function() {
var counter = 0;
return {
incrementCounter: function() {
return counter++;
},
resetCounter: function() {
console.log("counter value prior to reset: " + counter);
counter = 0;
}
};
})();
// Usage:
// Increment our counter
testModule.incrementCounter();
// Check the counter value and reset
// Outputs: counter value prior to reset: 1
testModule.resetCounter();