dica atrasada: Se você insistir em usar a function e tiver um "this.(algo)" em algum canto da function, use ".bind(this)" no seguinte lugar: class Menu { constructor(menu) { this.menuElemnt = document.querySelector(menu); this.adicClass = "ativo"; } adiElemenAtiv() { this.menuElemnt.addEventListener("click", function(evento) { evento.target.classList.add(this.adicClass) console.log(this); }*.bind(this)*) }; };
@@Tue-so2ls porque se não, não vai funcionar, por isso coloca o bind para que o menu funcione, é meio complexo de explicar kkk só praticando pra entender às vezes até eu esqueço
Uma dúvida: Quando eu coloco o script no head, no console ele aparece o seguinte: menuElement: null; Em vez de aparecer: menuElement: nav.principal; E consequentemente tudo mais não funciona. A dúvida é, porque quando o script vai no head não funciona e aparece isso, e no final do body funciona normal? Sem mais, Vlw mesmo.
Pelo fato do Script carregar e executar antes do conteúdo do existir no site. Então ele não vai conseguir selecionar o elemento nav.principal e por isso vai retornar undefined.
Function geram um novo contexto para o this.
Arrow function mantém o contexto existente.
Procurei a finalmente econtrei um estudo direcionado para quem quer ir direto aprender o framwork.
Muito obrigado!
Excelente ! Muito Bem Explicado ! ! Parabéns Pelos Vídeos ! ! !
Muito simples de entender! gostei!
que massa. Obrigado por compartilhar
Simples rápido e fácil, gratidão!
Muito bom, estava mesmo querendo aprender arrow function!
Muito bom obrigado.
qual esse tema?
Deixa eu perguntar, tenho seu curso que é ótimo por sinal !
Mas não tô achando material a respeito de callback ?
dica atrasada: Se você insistir em usar a function e tiver um "this.(algo)" em algum canto da function, use ".bind(this)" no seguinte lugar:
class Menu {
constructor(menu) {
this.menuElemnt = document.querySelector(menu);
this.adicClass = "ativo";
}
adiElemenAtiv() {
this.menuElemnt.addEventListener("click", function(evento) {
evento.target.classList.add(this.adicClass)
console.log(this);
}*.bind(this)*)
};
};
Por que tem que usar isso?
@@Tue-so2ls porque se não, não vai funcionar, por isso coloca o bind para que o menu funcione, é meio complexo de explicar kkk só praticando pra entender às vezes até eu esqueço
Uma dúvida:
Quando eu coloco o script no head, no console ele aparece o seguinte:
menuElement: null;
Em vez de aparecer:
menuElement: nav.principal;
E consequentemente tudo mais não funciona.
A dúvida é, porque quando o script vai no head não funciona e aparece isso, e no final do body funciona normal?
Sem mais, Vlw mesmo.
Pelo fato do Script carregar e executar antes do conteúdo do existir no site. Então ele não vai conseguir selecionar o elemento nav.principal e por isso vai retornar undefined.
@@Origamid mas colocando no head eu não posso passar uma propriedade na tag que faz o script esperar a pagina toda carregar para depois ele executar?
@@felipedantas8153 Se quiser colocar no head, use 'defer para ele esperar o HTML ser executado :
Só uma dúvida...
A arrow function funcionam em navegadores como Explorer ou Edge?
comandos de uma linha em javascript não precisa de chaves, por exemplo o for não precisa de chaves quando for o comando de uma linha
Isso é uma má prática de programação fora que parece ser preguiça de abrir 2 chaves
@@TecnoPlayCanal 😴😴😴😴