What Difficulty Exactly Closure Resolved In Javascript?
Solution 1:
Here is a closure example:
var items = ["a","b", "c"];
var displayItem = function (i) {
returnfunction () {
alert(items[i]);
}
}
for (var i = 0; i < items.length; i++) {
window.setTimeout(displayItem(i), 100);
}
A closure keeps the context information of a function. In this example the closure keeps the number if the counter and the items array. If I wouldn't use the closure the conter would have changed and all alerts would show undefined (var i whould be 3).
You are using closures and you may have not noticed. There are no rules of when to use them. When declaring functions inside other functions you are creating closures. In this example I created a closure with just the data I needed. But the displayItem function has created a closure that allows him to acces to the items array.
Using closures may have performance issues because you're forcing the browser to keep more data in memory. So people doesn't use it for performance and nor as a best practice, it is simply an other tool to solve some problems.
Post a Comment for "What Difficulty Exactly Closure Resolved In Javascript?"