1
resposta

Duvida sobre a necessidade de duas fuction

Queria entender poque é necessário criar uma função anônima para executar outra função. Porque a const peca deve estar dentro da function manipulaDados ?

controle.forEach( (elemento) => {
    elemento.addEventListener("click", (evento) => {
        manipulaDados(evento.target.textContent, evento.target.parentNode)
    })
})

function manipulaDados (operacao, controle) {
    const peca = controle.querySelector(".controle-contador")

      if (operacao === "-"){
     peca.value = parseInt(peca.value) - 1
    } else { 
     peca.value = parseInt(peca.value) + 1

    }
}
1 resposta

Olá, Matheus! Tudo bem?

A função anônima que você está vendo no código é conhecida como "arrow function". Ela é utilizada para criar uma função de forma mais concisa e também para manter o escopo do this dentro da função.

No seu exemplo, a função anônima está sendo utilizada como um "callback" para o evento de clique nos elementos controle-ajuste. Quando um desses elementos é clicado, a função anônima é executada e chama a função manipulaDados, passando como argumentos o texto do elemento clicado e o pai desse elemento.

A razão pela qual a constante peca está dentro da função manipulaDados é para que ela seja acessível apenas dentro dessa função. Se a constante estivesse fora da função, ela seria acessível globalmente e poderia causar conflitos caso houvesse mais de um elemento com a classe controle-contador na página.

Dessa forma, a função manipulaDados recebe o elemento pai como parâmetro e utiliza o método querySelector para buscar o elemento com a classe controle-contador apenas dentro desse elemento pai. Assim, a função consegue acessar o elemento correto e realizar as operações de adição ou subtração.

Espero ter esclarecido sua dúvida! Se tiver mais alguma pergunta, estarei à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.