Closures en javascript
Closures son considerados como una función avanzada en JavaScript, pero la comprensión es esencial para dominar el lenguaje.
Considere la siguiente función:
function init() {
var username = "develop_andrade";
function displayUsername() {
alert(username);
}
displayName();
}
init();
Ahora haremos algo un poco mas complicado
var likeDislike = function(username){
var contadorPrivado = 0;
function change(val){
contadorPrivado += val
}
return {
{
like: function() {
change(1);
},
dislike: function() {
change(-1);
},
likes: function() {
//aqui podriamos hacer una llamada al api de facebook para saber el numero de amigos que tiene el username
//por el momento solo retornaremos el el valor del contador
return contadorPrivado;
}
}
}
var contador1 = likeDislike('develop_andrade');
var contador2 = likeDislike('some_username');
contador1.increment()
contador1.increment()
contador1.increment()
contador1.increment()
contador2.increment()
contador2.increment()
contador2.increment()
alert(contador1.likes())//muestra 4
alert(contador2.likes())//muestra 3
Written by Jorge Andrade
Related protips
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Javascript
Authors
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#