1
resposta

[Dúvida] [Dúvida] Por que definindo nome e quantidade já com os values, não limpa os inputs?

Bom dia!

Fiquei na dúvida de por que não funcionou quando já defini as variáveis de nome e quantidade já com os valores e tentei limpar os inputs após a execução da função. Assim:

form.addEventListener("submit", (evento) => {
    evento.preventDefault();

    let nome = evento.target.elements["nome"].value;
    let quantidade = evento.target.elements["quantidade"].value;

    createElement(nome, quantidade);

    nome = "";
    quantidade = "";

Só funcionou quando fiz dessa forma, igual ao professor, consultando o value só depois:

form.addEventListener("submit", (evento) => {
    evento.preventDefault();

    let nome = evento.target.elements["nome"];
    let quantidade = evento.target.elements["quantidade"];


    createElement(nome.value, quantidade.value);

    nome.value = "";
    quantidade.value = "";

Alguém saberia responder, por gentileza?

1 resposta

Oi, Jessica

No 1º caso é feita uma cópia dos valores do objeto

No 2º caso é feito um apontamento para o objeto

Exemplo:


// objetoA como referência
const objetoA = { valor: 1 };


// Exemplo de cópia de valor do objeto
let valorB = objetoA.valor; // faz uma cópia do valor do objetoA

console.log(valorB); // 1

valorB = 2;

console.log(objetoA.valor); // 1 
console.log(valorB); // 2

// Exemplo de apontamento de objeto
const objetoC = objetoA; // faz com que objetoC aponte para o objetoA

console.log(objetoC.valor); // 1

objetoC.valor = 2;

console.log(objetoA.valor); // 2
console.log(objetoC.valor); // 2

O que é o DOM?