Ó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! 😍❤️👏🏻👏🏻👏🏻👏🏻❣️😍😍
Ó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!!!
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
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.
Top!
a parte do filter eu entendi, agora a explicação mesmo da High Order Function nao consegui pegar por nada
Clareou bastante aqui, não tava associando que as HOF são os famosos .map, .filter kkkkk
valeu Chris Cornell da OBC 😎
Show
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 !