iwtraining

A closure fica sempre com o último valor de qualquer variável da função que contém. Lembre-se que a closure armazena uma referência para objeto todo, não apenas para uma determinada variável.

var x = 9;
var meusDados = function(){
     return x; 
};

meusDados() // retorna 9;
x = 10;
meusDados() // retorna 10;

Agora, vamos armazenar o valor de x naquele momento, pra isso vamos modificar a função meusDados um pouco.

var x = 9;
var meusDados = function(xLocal){
     return xLocal 
}(x);  //isso faz a função executar e armazenar o seu valor em meusDados.

console.log(meusDados); //retorna 9
x = 10;
console.log(meusDados); //retorna 9

Nesse exemplo, armazenamos apenas um valor, podemos retornar uma função inteira com os valores armazenados.

var x = 9;
var meusDados = (function(xLocal){
     return function() {
        console.log(“e o valor é: “ + xLocal);
     };
})(x);

meusDados(); // retorna “e o valor é: 9”
x = 12;
meusDados(); // retorna “e o valor é: 9”

Dúvidas?

Aluno iwtraining tem acesso a um fórum exclusivo para discutir com os instrutores e outros alunos. Acesse agora mesmo!

Share this article

Em seus 12 anos de experiência, tanto em design como em desenvolvimento, trabalhou em diversos projetos, muitos de grande porte, para clientes como Banco do Nordeste, Sebrae, Anna Pegova, Grupo Deib Otoch, dentre outros. Como designer, trabalha com o Adobe Photoshop desde a versão 3.0, além do Illustrator, sendo certificado pela Adobe (ACE e ACI) nestes softwares. Como desenvolvedor, foca seus esforços atualmente no ActionScript 3.0 (Plataforma Flash) e Objective-C (iOS). Ministra, desde 2005, treinamentos na @iwtraining para estudantes e profissionais, além de grandes empresas como Cagece, TRE, TRT, Esmaltec, Grupo Edson Queiroz, Sebrae, Senac, Correios.

Posts Relacionados

Deixe um comentário