Boa tarde galera,
tenho uma pequena dúvida e as vezes não usual.
Como posso acessar uma variável global como o mesmo nome de uma variável local dentro de uma função?
Sim cara, tem que ter o mesmo nome, sei que o código nao deve ser usual. Quero saber se tem alguma forma de acessa-la.?
lucasmurata
Sim cara, tem que ter o mesmo nome, sei que o código nao deve ser usual. Quero saber se tem alguma forma de acessa-la.?
Javascript não é block-scoped, por tanto, variável criado dentro de uma função sempre vai prevalecer às variáveis globais.
Tanto é que voce nao consegue criar uma constante com mesmo nome de uma variavei local, voce tem que dar nomes diferentes.
Sempre que tiver variável do mesmo nome, a variável declarada no escopo da função sempre prevalece.
O que voce quer fazer, sem muita gangiarra, não é possível.
diegohsi
Sim cara, tem que ter o mesmo nome, sei que o código nao deve ser usual. Quero saber se tem alguma forma de acessa-la.?
Javascript não é block-scoped, por tanto, variável criado dentro de uma função sempre vai prevalecer às variáveis globais.
Tanto é que voce nao consegue criar uma constante com mesmo nome de uma variavei local, voce tem que dar nomes diferentes.
Sempre que tiver variável do mesmo nome, a variável declarada no escopo da função sempre prevalece.
O que voce quer fazer, sem muita gangiarra, não é possível.
Amigo, qual seria a gambiarra? Pesquisei na net e em alguns livros mais nao achei algo parecido, fiz essa pergunta para o professor ele me pediu pra pesquisar e dar a resposta na proxima aula :shock:
lucasmurata
Sim cara, tem que ter o mesmo nome, sei que o código nao deve ser usual. Quero saber se tem alguma forma de acessa-la.?
Javascript não é block-scoped, por tanto, variável criado dentro de uma função sempre vai prevalecer às variáveis globais.
Tanto é que voce nao consegue criar uma constante com mesmo nome de uma variavei local, voce tem que dar nomes diferentes.
Sempre que tiver variável do mesmo nome, a variável declarada no escopo da função sempre prevalece.
O que voce quer fazer, sem muita gangiarra, não é possível.
Amigo, qual seria a gambiarra? Pesquisei na net e em alguns livros mais nao achei algo parecido, fiz essa pergunta para o professor ele me pediu pra pesquisar e dar a resposta na proxima aula :shock:
Na verdade nao é possível com mesmo nome. A gambiarra depende do que voce precisa fazer. Voce precisa manipular o valor? Copiar valor? Trocar?
diegohsi
Sim cara, tem que ter o mesmo nome, sei que o código nao deve ser usual. Quero saber se tem alguma forma de acessa-la.?
Javascript não é block-scoped, por tanto, variável criado dentro de uma função sempre vai prevalecer às variáveis globais.
Tanto é que voce nao consegue criar uma constante com mesmo nome de uma variavei local, voce tem que dar nomes diferentes.
Sempre que tiver variável do mesmo nome, a variável declarada no escopo da função sempre prevalece.
O que voce quer fazer, sem muita gangiarra, não é possível.
Amigo, qual seria a gambiarra? Pesquisei na net e em alguns livros mais nao achei algo parecido, fiz essa pergunta para o professor ele me pediu pra pesquisar e dar a resposta na proxima aula :shock:
Na verdade nao é possível com mesmo nome. A gambiarra depende do que voce precisa fazer. Voce precisa manipular o valor? Copiar valor? Trocar?
Eu preciso enchergar ela, imprimir ela na tela, sei la, alguma maneira de acessa-la.
Obrigado, pelas respostas ate o momento.
jweibe
lucasmurata
Na verdade nao é possível com mesmo nome.
Na verdade é possivel sim usando o this
<scripttype="text/javascript">varx="Algum Texto Aki: Variavel Global";functiongo(){varx="Algum Texto Aki: Variavel Dentro da Função";alert(this.x);alert(x);}go();</script>
lucasmurata
jweibe:
lucasmurata
Na verdade nao é possível com mesmo nome.
Na verdade é possivel sim usando o this
<script type="text/javascript">
var x = "Algum Texto Aki: Variavel Global";
function go(){
var x = "Algum Texto Aki: Variavel Dentro da Função";
alert(this.x); alert(x);
}
go();
</script>
Nesse seu exemplo dá. Mas tem que tomar cuidado com a palavra-chave this. Ela nem sempre referencia a variável global como no seu exemplo. A função do this muda de acordo com o contexto em que o uso, já que em javascript tenho 5 formas de chamar uma função.
Nesse caso ele nao reconhece o this.x como variável global. E se eu manter somente o x ele se assumira como variável local.
Portanto, melhor opção é dar nome corretamente às variáveis.
jweibe
Muito bem lembrado lucasmurata… o exemplo que eu postei foi uma forma de
resolver o problema levantado pelo diegohsi. Que por sua vez acessa a variavel
como ele quer…