1
resposta

Dificuldade no método notificar

Estou com dificuldades de entender a funcionalidade deste método:

notificar(){ this._inscritos.forEach(func =>{ func(this.categorias); } ); }

Entendi que ele irá fazer um forEach no array _inscritos, mas não consigo entender o que está acontecendo a partir da arrow function.

1 resposta

Oi Paulo!!

O .forEach realiza alguma ação (ou seja, uma função) sobre cada elemento de um array.

Olhe o exemplo abaixo:

let numeros = [1,2,3,4,5];

function multiplicaPor2(numero) {
    console.log(2*numero)
}

numeros.forEach(multiplicaPor2);

O código acima printa no console os valores de numeros multiplicados por 2, ou seja "2,4,6,8,10", pois para cada valor de números, a função multiplicaPor2 foi executada.

Agora vamos substituir a function por uma arrow function para que ela fique parecida com o código da aula:

let numeros = [1,2,3,4,5];

numeros.forEach((numero) => {console.log(numero*2)});

Os dois códigos realizam a mesma tarefa, porém a arrow function foi utilizada para que não fosse necessário declarar uma função separada e assim diminuir a quantidade de código escrita.


Voltando para o código da aula: o array this._inscritos é composto por funções.

Então o código

notificar(){ this._inscritos.forEach(func =>{ func(this.categorias); } ); } 

pode ser entendido como: para cada função (func) dentro de this._inscritos, execute funccom this.categorias como parâmetro.

Espero que tenha ficado claro, mas se ainda houverem dúvidas, comenta aqui para que eu tente te ajudar novamente!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software