Ótima explicação mas as vezes o que não fica muito bem esclarecido é quando os programadores falam tipo assim: vou botar um text aqui (se referindo a variável text), quando ele retornar isso aqui quer dizer que ele está retornando essa outra função aqui (qual função? A dialog ou speakToMary?) , vou retornar essa função aqui (se referindo a função speakToMary???)... ao invés de usarem o aqui, poderiam falar o verdadeiro nome daquilo que estão se referindo. Isso facilitaria muito para os iniciantes como eu.
Top. Gostaria da sua explicação sobre a parte function speakToMary(dialog) { const text = dialog("Mary") return "He says `${text} } Na linha 2, se dialog é uma function, porquê não há bloco de código, já que não é arrow function.
Olá amigo, bom eu acho que consegui entender.. vou tentar explicar e talvez eu esteja errado rsrs ( é um assunto novo pra mim, mas bora la ... kkk) : O parametro da função speakToMary é uma função, logo, se vc chama uma função no parametro, vc tem que passar um parametro para essa função( consufo? sim kkk) Ex: no minuto 5:42 , o dialog é a função greet, a função greet precisa receber um parametro, então, como dialog é a função greet, o parametro passado para greet seria "Mary". Vou exemplificar em código, não sei se esse código vai rodar, mas é só pra entendimento: Seria como se tivesse feito isso ( mas não seria uma High Order Funtion, pois não recebe uma função como parametro e sim uma string/texto) function falou(nameF1){ return `Olá, ${nameF1}` } funtion eleDisse(nameF2){ const texto = falou(nameF2); return `Ele disse a seguinte frase: "${texto}"`; } console.log(eleDisse("Alfreedo")) // Saida: Ele disse a seguinte frase: "Olá, Alfreedo" FIM! **************************************************** Como seria então com uma high order funtion? o código ficaria mais ou menos assim: function falou(nameF1){ return `Olá, ${nameF1}` } funtion eleDisse(funcaoPassada){ const texto = funcaoPassada("Alfreedo");
return `Ele disse a seguinte frase: "${texto}"`; } console.log(eleDisse(falou) // Saida: Ele disse a seguinte frase: "Olá, Alfreedo" FIM! *************************************************** O que mudou ? No primeiro código chamamos a função eleDisse() passando como parametro um TEXTO/STRING. EX: eleDisse("Alfreedo)" E DENTRO DA FUNÇÃO eleDisse( ), nós criamos uma constante que recebe como valor o retorno da função falou() PASSANDO COMO PARAMETRO O TEXTO/STRING APONTADA EM (nameF2). Ex: const texto = falou(nameF2); ************************** No SEGUNDO código NÃO PASSAMOS para a função eleDisse() um texto/string, mas, SIM UMA FUNÇÃO! passamos a função falou(). EX: console.log(eleDisse(falou)). Chamamos essa função passada como parametro de funcaoPassada, então, DENTRO DA FUNÇÃO eleDisse(funcaoPassada) A FUNÇÃO falou() se chama funcaoPassada. O que fizemos foi atribuir o valor da constante texto pra funcaoPassada("Alfreedo") que seria o mesmo que o const texto = falou(nameF2); do primeiro código, pois, funcaoPassada é a função falou(), por que ela foi passada como parametro. ***************************** Qual é a real diferença já que o resultado foi o mesmo ? A diferença está no TIPO DE PARAMETRO PASSADO, quando passamos uma função como parametro para a função eleDisse(), a função eleDisse() se tornou uma High Order Funtion, pois recebeu uma função como um parametro, quando passamos no primeiro código somente uma string/texto a função eleDisse() não se tornou uma High Order Funtion, pois, ela recebeu uma string como parametro. Então podemos concluir que: High Order Funtion são funções que recebem outras funções como parametro! ******************* eu acho que é isso, talvez eu esteja bem errado kkk mas, se eu estver errrado, ficarei feliz se alguém me ajudar a entender também.
Fala Ricardo beleza? Confere se tá usando crase ``, oh um exemplo: const greet = "olá sou miguel" console.log(`Quem sou eu ${greet}`). Espero ter ajudado.
Você é genial!!! Explica de forma clara e rápida! 😍❤️👏🏻👏🏻👏🏻👏🏻❣️😍😍
Esse vídeo explica melhor que e aula do curso full stack JS sobre o mesmo assunto, parabéns
também estou fazendo o curso fullstack e achei a explicação no modulo sobre function bem falho
@@theflores999 achei muito superficial
@@marcuscastro2435 sim, eu mesmo estou super perdido em eventos de dom, não consigo aplicar nada
@@theflores999 vc está em qual módulo do curso?
Não terem explicado arrow-function tbm me fez ficar muito perdido
@@marcuscastro2435 objetos
Ótima explicação mas as vezes o que não fica muito bem esclarecido é quando os programadores falam tipo assim:
vou botar um text aqui (se referindo a variável text), quando ele retornar isso aqui quer dizer que ele está retornando essa outra função aqui (qual função? A dialog ou speakToMary?) , vou retornar essa função aqui (se referindo a função speakToMary???)...
ao invés de usarem o aqui, poderiam falar o verdadeiro nome daquilo que estão se referindo. Isso facilitaria muito para os iniciantes como eu.
Boa explicação!!!
Top.
Gostaria da sua explicação sobre a parte
function speakToMary(dialog) {
const text = dialog("Mary")
return "He says `${text}
}
Na linha 2, se
dialog é uma function, porquê não há bloco de código, já que não é arrow function.
Olá amigo, bom eu acho que consegui entender.. vou tentar explicar e talvez eu esteja errado rsrs ( é um assunto novo pra mim, mas bora la ... kkk) :
O parametro da função speakToMary é uma função, logo, se vc chama uma função no parametro, vc tem que passar um parametro para essa função( consufo? sim kkk)
Ex: no minuto 5:42 , o dialog é a função greet, a função greet precisa receber um parametro, então, como dialog é a função greet, o parametro passado para greet seria "Mary".
Vou exemplificar em código, não sei se esse código vai rodar, mas é só pra entendimento:
Seria como se tivesse feito isso ( mas não seria uma High Order Funtion, pois não recebe uma função como parametro e sim uma string/texto)
function falou(nameF1){
return `Olá, ${nameF1}`
}
funtion eleDisse(nameF2){
const texto = falou(nameF2);
return `Ele disse a seguinte frase: "${texto}"`;
}
console.log(eleDisse("Alfreedo"))
// Saida: Ele disse a seguinte frase: "Olá, Alfreedo"
FIM!
****************************************************
Como seria então com uma high order funtion?
o código ficaria mais ou menos assim:
function falou(nameF1){
return `Olá, ${nameF1}`
}
funtion eleDisse(funcaoPassada){
const texto = funcaoPassada("Alfreedo");
return `Ele disse a seguinte frase: "${texto}"`;
}
console.log(eleDisse(falou)
// Saida: Ele disse a seguinte frase: "Olá, Alfreedo"
FIM!
***************************************************
O que mudou ?
No primeiro código chamamos a função eleDisse() passando como parametro um TEXTO/STRING. EX: eleDisse("Alfreedo)"
E DENTRO DA FUNÇÃO eleDisse( ), nós criamos uma constante que recebe como valor o retorno da função falou() PASSANDO COMO PARAMETRO O TEXTO/STRING APONTADA EM (nameF2). Ex: const texto = falou(nameF2);
**************************
No SEGUNDO código NÃO PASSAMOS para a função eleDisse() um texto/string, mas, SIM UMA FUNÇÃO! passamos a função falou(). EX: console.log(eleDisse(falou)).
Chamamos essa função passada como parametro de funcaoPassada, então, DENTRO DA FUNÇÃO eleDisse(funcaoPassada) A FUNÇÃO falou() se chama funcaoPassada.
O que fizemos foi atribuir o valor da constante texto pra funcaoPassada("Alfreedo") que seria o mesmo que o const texto = falou(nameF2); do primeiro código, pois, funcaoPassada é a função falou(), por que ela foi passada como parametro.
*****************************
Qual é a real diferença já que o resultado foi o mesmo ?
A diferença está no TIPO DE PARAMETRO PASSADO, quando passamos uma função como parametro para a função eleDisse(), a função eleDisse() se tornou uma High Order Funtion, pois recebeu uma função como um parametro, quando passamos no primeiro código somente uma string/texto a função eleDisse() não se tornou uma High Order Funtion, pois, ela recebeu uma string como parametro.
Então podemos concluir que:
High Order Funtion são funções que recebem outras funções como parametro!
*******************
eu acho que é isso, talvez eu esteja bem errado kkk mas, se eu estver errrado, ficarei feliz se alguém me ajudar a entender também.
Clareou bastante aqui, não tava associando que as HOF são os famosos .map, .filter kkkkk
valeu Chris Cornell da OBC 😎
a parte do filter eu entendi, agora a explicação mesmo da High Order Function nao consegui pegar por nada
Como cê tá rodando o js assim no terminal
Isso se chama Node Js. É um programa q permite rodar o js fora dos navegadores 👍
No meu vs code não consigo utilizar ${...}. o que pode ser ?
Fala Ricardo beleza? Confere se tá usando crase ``, oh um exemplo:
const greet = "olá sou miguel"
console.log(`Quem sou eu ${greet}`).
Espero ter ajudado.
@@miguelmarquiori muito obrigado, consegui aqui !!
Isso se chama template literals !
Top!
Show