Friday, 20 May 2016

javascript - What are the benefits of a closure, and when are they typically used?




I'm a web developer, but lots of folks are looking for slightly more advanced skills and understanding closures seems to be at the forefront of this.



I get the whole "execution context creating a reference to a variable that doesnt ever get destroyed" thing, but really, is this some sort of private or static variable implementation in JavaScript?


Answer



They can be good for lots of things, for example, visibility (like private members in traditional OO).



var count = function(num) {

return function(add) {

add = add || 1;
num += add;
return num;
}

}


See it.




My count() can be seeded with a number. When I assign a variable to the return, I can call it with an optional number to add to the internal num (an argument originally, but still part of the scope of the returned function).



This is a pretty good overview.



See also on




No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...