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 3Written by Jorge Andrade
Related protips
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Javascript
Authors
Did you know?
JavaScript on a page runs with the privileges of that origin. One altered library, tag manager, or snippet can read inputs, change what people see, and call your APIs as the user.
Security insights from Cside
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#