Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Variável por referência

Eu fiquei com uma dúvida em relação a como funciona as variáveis no javascript. Quando eu atribuo o valor a uma variável no código abaixo, ao alterar o valor da variável, por que ele muda o valor do original no document? Este é um caso particular porque estou atribuindo um elemento do DOM?

var pacientes = document.querySelector(".paciente");
var tdImc = paciente.querySelector(".info-imc").textContent;
tdImc.textContent = imc.toFixed(2);
2 respostas

Olá Angela,

O programa esta mudando o valor no documento pois o código esta pedindo para que isso seja feito. Quando é digitado o "tdImc.textContent =" uma tradução para a instrução é:

"tdImc" - documento selecione a seguinte tag html; ".textContent" - do que foi selecionado foque apenas no conteúdo de texto; "=" - documento, agora receba o valor que estou passando; "imc.tofixed(2)" - o valor a ser recebido pelo "tdImc" é o valor armazenado na variável "imc" e este valor deve se arredondado com 2 casas depois da vírgula.

Resumindo, se for removido a ultima linha do trecho de código mostrado ele não vai atualizar no html.

solução!

Oi Gabriel,

muito obrigada por responder. Acho que eu não consegui me expressar corretamente. O que queria saber era se ao atribuir um objeto a uma outra variável, o javascript recebe a referência do objeto e não uma cópia do valor. Eu consegui entender depois, fazendo alguns testes.

Por exemplo:

// Neste caso a variável original não é alterada. 
var nomeOriginal = "Fulano";
var nomeNovo = nomeOriginal;
nomeNovo = "Outro fulano";

// Neste caso a variável original (objeto) tem seu nome alterado
var pessoaOriginal = { idade: 10, nome: "Mariazinha" }
var pessoa2 = pessoaOriginal;
pessoa2.nome = "Ana";