I get
that by returning an inner function, it will have access to any variable defined in its
immediate parent.
Where would this be useful to
me? Perhaps I haven't quite got my head around it yet. Most of the href="http://blog.morrisjohns.com/javascript_closures_for_dummies.html"
rel="noreferrer">examples I have seen online don't provide any real world
code, just vague examples.
Can
someone show me a real world use of a
closure?
Is this one, for
example?
var warnUser = function
(msg) {
var calledCount = 0;
return function() {
calledCount++;
alert(msg + '\nYou have been warned ' + calledCount + '
times.');
};
};
var warnForTamper =
warnUser('You can not tamper with our
HTML.');
warnForTamper();
warnForTamper();
Answer
I've used closures to do things
like:
a = (function ()
{
var privatefunction = function () {
alert('hello');
}
return {
publicfunction :
function () {
privatefunction();
}
}
})();
As
you can see there, a
is now an object, with a method
publicfunction
( a.publicfunction()
)
which calls privatefunction
, which only exists inside the
closure. You can NOT call
privatefunction
directly (i.e.
a.privatefunction()
), just
publicfunction()
.
Its a
minimal example but maybe you can see uses to it? We used this to enforce public/private
methods.
No comments:
Post a Comment