Bem-vindo de volta.
Então, esta lição é completamente opcional.
É um pouco um bônus.
É realmente algo que é um pouco interessante.
É por isso que estou mostrando para você, mas não é essencial para o curso.
E vamos falar sobre o funcionamento do foreach e vamos construir nossa própria versão para cada um.
Então, vamos falar sobre como você escreve uma função que assume uma função como um argumento
e, em seguida, executa essa função dentro dela.
Então, novamente, completamente opcional.
A outra razão para torná-lo opcional é que é um pouco mais avançado e não quero
intimidar todos, eu não quero que você se sinta mal, se é confuso para você porque é confuso
e, muitas vezes, é preciso repetições múltiplas disto.
Para os meus alunos obtê-lo.
Então é totalmente opcional.
E isso é importante, mas não é essencial para fazer aplicativos.
Não é essencial avançar no curso.
É, porém, algo que, se você tentar assistir uma vez e não faz uma boa sensação para
você, você poderia voltar para o final da aula, uma vez que você tenha mais alguma experiência de Javascript.
E isso também é algo que eu tenho que fazer com meus estudantes pessoalmente o tempo todo.
Como mencionei, revisamos este tópico.
Então, vamos começar, vamos construir o nosso próprio para cada um e vamos começar por
definir uma função chamada para cada um e vai funcionar um pouco diferente do
que o verdadeiro foreach funciona, agora mesmo do jeito que Para cada obra é que eu defino uma matriz,
vamos chamar Nom's e teremos alguns números lá da mesma forma.
E eu chamo para cada um em Nomes.
Então, nums ponto para cada um e depois eu dou uma função e acabamos de ver isso, então não
vou aborrecê-lo com muita esperança, mas vamos chamar esse número e depois fazer um registro simples e constante.
Não.
Aqui vamos nós.
É preciso uma função e chama uma função em cada elemento da matriz.
Knops, mas note que não precisamos passar Nom's para cada um.
Sabia apenas sobre os números que conhecia sobre a matriz porque fizemos o ponto de Gnome para cada um.
Então, não vamos começar definindo uma função que funciona desse jeito.
Vamos começar com um que se parece com isso.
Bem, chame isso para cada um e, ao invés de tomar apenas um argumento, levará dois.
E a primeira é a matriz e a segunda é a função.
Então array será Nomes.
E esta seria a função.
Então, se você quisesse executar o mesmo código com Nom's, ficaria assim com a minha vírgula de
cada Nom e, em seguida, toda a nossa função aqui, que se parecerá o mesmo.
Então estamos começando com esta versão porque é mais simples.
É um pouco mais de sintaxe, mas é mais simples para nós escrever.
Então, novamente, estamos passando em Nome, em vez de apenas agarrá-lo usando mágica especial de javascript.
Há uma maneira de agarrá-lo se você estiver definindo um método em algo como nós temos aqui, mas vamos chegar a
isso.
OK então vamos definir uma função MYF ou cada uma.
E é preciso uma matriz e uma função.
E não podemos chamar essa função porque essa é uma palavra especial em Javascript.
Então, chamaremos phunk ou F o que quer que você queira chamar e depois abriremos nossa função.
E vamos começar por falar sobre o que para cada um faz.
Então lembre-se que leva essa função e chama isso para cada item na matriz.
Então, para fazer isso, precisamos usar um loop para fazer qualquer coisa por cada item em uma matriz.
Temos que ter um loop.
Então, vamos usar apenas um loop for loop loop e depois no loop, vamos apenas chamar de função
e tudo o que precisamos fazer para chamar a função é adicionar parênteses ao final.
isso é o que meus alunos sempre lutam e quem está aprendendo javascript é desligado aqui.
Então, é um pouco confuso,
Mas lembre-se da distinção entre o nome de uma função sem parênteses.
Isso apenas se refere à própria função.
Mas não está executando isso assim que eu adicionar os parênteses, esse código em vez de funcionar
e executá-lo.
Então eu posso dar um exemplo aqui.
Se acabamos de fazer.
Deixe-me cortar isso.
Se apenas alertar alertas não é executado.
Mas, assim que adicionamos esses parênteses, recebemos um alerta.
E eu não passei nada, mas ainda é executado o código.
Então, vamos voltar ao nosso código e, ao invés de apenas chamar phunk imediatamente, seguiremos
a matriz.
Então adiciono um loop de comentário através da matriz e, em seguida, dentro da chamada de loop phunk para cada item na matriz.
Então, para percorrer a matriz.
Bem, este é um loop for.
Você também pode usar um loop while, mas usaremos um loop for.
Então, para var eu igual zero I menos do que um r r ponto comprimento que é o nome do argumento.
A R R.
E então eu
mais mais, assim como isso, e então vou mudar essa linha para o nosso loop, porque o que queremos fazer é
dentro deste loop, queremos chamar phunk para que possamos começar apenas ligando para pessoas assim.
seja passada, pois o segundo argumento será chamado uma vez por cada item da matriz, ainda faltamos
uma peça importante que é realmente passar os dados de cada item na matriz.
Então, qualquer função
Mas toda essa coluna para cada item.
Então, vamos entrar.
E agora vamos tentar executar isso.
Eu vou definir uma matriz chamada cores ou favorito meu favorito pelo menos laranja.
E nós vamos parar em amarelo.
Então, três itens e então eu vou chamar meus quatro cada e passar em cores como a matriz e então eu
vou apenas alertar.
E não adicionamos parênteses, lembre-se porque isso irá executar imediatamente o alerta.
Isso não é o que queremos.
Queremos que a função seja minha para que cada um seja o único a executar o alerta.
Então lembre-se que phunk está realmente alerta.
Neste caso, mas também pode ser cônsul que logar ou, na maioria das vezes, seria uma função anônima.
Nós definimos que seria chamado Inside of phunk.
Então, vamos mudá-lo de volta ao alerta e entra em cena.
Recebo um alerta.
Acerto OK. Recebo outro alerta.
Eu bati OK e recebo mais um alerta.
Então, o que está acontecendo é que este loop é looping array, que no nosso caso é uma série de
cores com três itens.
Então, três vezes é loops e cada vez que chama func e tudo o que phunk está está alerta.
Isso é tudo o que é.
Então alerta um alerta vazio três vezes porque não estamos passando nada para o funk.
func é tudo o que fazemos é passar um pouco de dados aqui e que um pouco de dados deve ser cada item na matriz.
Então, para fazê-lo funcionar com os dados que estão sendo transmitidos para alerta ou o que quer que
Então, a maneira como acessamos cada item é usando I.
Então, se eu recordar o código aqui, eu apenas adiciono um suporte de matriz.
Então, pela primeira vez no loop, isso chamará de função que esteja alerta.
Nesse caso, com o primeiro item na matriz que é lido, então o alerta será lido e então eu
me tornarei um.
Então, lembre-se de Phunk, que ainda está alerta com um array de um que é laranja.
vez, o alerta de amarelo diz, então veja isso agora mesmo se eu recordar minha execução aqui para o alerta de cada cor.
Então, ficamos alertas laranja e, em seguida, mais uma
Agora me dá vermelho laranja e amarelo e na verdade é tudo o que há para definir para cada um.
No entanto, como eu disse a maior parte do tempo, você não vai ver isso assim que passamos uma
função chamada, geralmente terá uma função anônima.
Então não vamos dar uma chance.
Mas usando uma função anônima.
Então, meu para cada e depois vamos passar e cores novamente e depois uma função anônima.
parênteses aqui, são parênteses muito diferentes do que o referido, invoca uma função.
E lembre-se de que, embora existam
Então, deixe-me mostrar o que quero dizer.
Se eu excluir esta primeira parte e eu apenas tenho uma função anônima aqui.
E tudo o que fazemos dentro é um diálogo de conselhos.
Eu sou uma função e acertei Enter agora mesmo e eu possuo um pouco para você, por isso é um pouco
mais fácil ver o que está acontecendo.
O que você acha que vai acontecer.
Bem, é claro, isso aconteceu.
Deixe-me voltar e adicionar os parênteses de encerramento para o meu log de ponto de conselho.
Agora, o que você acha que vai acontecer?
Acho que é ruim o momento aqui.
Mas quando acertei Enter, você verá que nada realmente acontece.
Recebo um valor que me devolveu um valor que foi enviado de volta.
Mas o código não é executado Eu não vejo perspectivas constantes e é porque essa função anônima
nunca foi invocada.
Basicamente, existia por um momento e agora desapareceu.
Não lhe dei um nome.
Não o guardei em uma variável.
Eu nunca posso chamá-lo novamente, a menos que eu reescreva isso.
Então, para executar esta função, eu ainda preciso desses parênteses depois.
Então, esta é uma grande sintaxe, é um pouco feio na minha opinião.
Mas agora, se eu tivesse esses parênteses, obtive a função.
Então, é o mesmo quando fazemos isso meu para cada cor e depois passamos aqui uma função anônima.
que esta função faz qualquer coisa, apenas digamos alertas, esta função não está sendo invocada aqui.
E digamos
Esta é a função aqui.
Nós ainda precisamos desses parênteses depois, como nós, temos aqui.
E isso vem de dentro do meu foreach, onde estamos adicionando esses parênteses ao funk e ao funk.
No nosso caso, aqui é todo o segundo argumento.
Então, se você está um pouco perdido nisso, não se preocupe novamente não é crucial para o resto do curso.
Mas tente isso novamente mais tarde no final, então eu posso fazer algo assim, quando eu apenas alerta alto ou
não estou realmente usando os dados como vermelho laranja e amarelo.
Não é tão comum querer fazer isso, mas se eu entrar no enter.
Você verá que eu consigo um alto alto e três altos.
Então, para cada item na matriz dessa cor, existem três itens.
Ele chama essa função inteira, mas na maioria das vezes o que queríamos fazer, é realmente usar essa cor
como estamos fazendo aqui.
Ou podemos começar como cada cor.
Então, tudo o que temos a fazer é aceitar um argumento em nossa função.
Então, meu foreach e isso está espaçado um pouco.
Então, a função e isso será chamado de cor, mas isso pode ser qualquer coisa, claro, como qualquer outra
função que definimos.
Pode ser quase qualquer coisa que tem que ser um nome javascript válido, não pode ser
algo como função ou var que são reservados para suas palavras-chave, mas qualquer outra coisa funcionará.
Então é isso que temos aqui.
Uma função anônima que agora está esperando um argumento e então podemos usá-lo dentro daqui.
Então, conserve a cor do log de ponto para começar.
Então, para percorrer isso, mais uma vez passamos as cores.
Neste caso, isso é o que nossa matriz é um são, nós seguimos por isso que cada vez que
estamos chamando phunk, que é essa coisa inteira aqui.
Estou lembrando que, ao passar no item atual dessa matriz.
Então estamos chamando este código aqui.
E então estamos passando em vermelho e depois laranja e depois amarelo.
Portanto, a cor é igual a vermelho, laranja ou amarelo.
Toda vez que esta lista é exibida, ficamos vermelho laranja e amarelo.
Então essa é a maneira básica de escrever para cada um.
Mas, como uma promessa, eu também mostrava como nós somos adicionados a uma matriz para que possamos escrever como esse
ponto de cores para cada um ou meu ponto para cada um, já que já existe para cada um.
Vamos deixar isso sozinho.
Mas coloque o meu para cada um.
E então podemos passar uma função aqui para fazer isso.
E quando um salto um pouco à frente de nós mesmos, nós não falamos sobre objetos, ainda não
conversamos sobre protótipos, mas vou mostrar isso aqui e depois vamos aprender mais sobre isso, como o
curso vai em.
Na verdade, a próxima unidade é sobre objetos.
Então, o que fazemos é que, na verdade, adicionamos um método para um tipo de produto de protótipo
re dot, você nunca o soletra e chamaremos de meu para cada um.
E antes que eu apresentei o autocompletar.
Estes são todos os métodos que existem no protótipo da matriz.
Então, é aí que nós conseguimos todos esses métodos como push e pop e deslocamos e
não enviados e, para cada um que existe em cada matriz, eles são definidos no chamado protótipo da matriz e qualquer
coisa definida nesse protótipo está disponível é utilizável em todas as matrizes .
Então, vamos tentar isso agora ler protótipo do meu para cada um é uma função e a
função só requer um argumento.
Agora, como nós temos aqui, basta em função e, então, dentro, precisamos fazer nossa mesma lógica, onde roteamos a matriz e
depois chamamos uma função para cada item na matriz.
A única coisa que muda é que não estamos aceitando um argumento.
A R, não temos mais a matriz, mas nós a temos aqui.
É um pouco diferente.
Temos que usar a palavra-chave.
Então, a palavra-chave vai se referir à matriz particular que chamamos de Assan.
Então, no caso das cores ponta para cada um se escrevemos a palavra-chave dentro de dentro para cada definição, ela
se referiria às cores.
Mas se fizéssemos números para cada coisa ou cão para cada um.
Isso se refere à matriz específica na qual estamos ligando.
Então, vamos fazer um quatro VAR I igual a zero.
Enquanto eu é menor do que este ponto, eu gosto mais.
Então essa é a primeira mudança.
Usamos esse link que se refere à matriz específica.
Então não estamos passando mais.
A próxima coisa que fazemos é chamar phunk, tal como fizemos na versão original, exceto em vez
do suporte de matriz, eu faria este suporte.
Eu apenas gosto disso.
E isso é realmente tudo o que há para isso.
Então, acabamos de adaptá-lo um pouco, substituindo um r r, que tem o nome do nosso argumento.
E poderia ter sido qualquer coisa, obviamente, substituindo-o pela palavra-chave.
Então vamos tentar para usá-lo.
Precisamos criar uma nova matriz.
Então eu vou fazer um chamado amigos e nós teremos alguns amigos.
Charlie.
Dave Matie e Caitlin, assim como o hit, entram.
Agora, podemos fazer amigos dot meus para cada um e que leva uma única função como um argumento.
Então, podemos dar-lhe alerta se quisermos.
E nós recebemos Charlie.
Dave Madie e Caitlin, mas normalmente nós a veríamos com uma função anônima como essa, meu para cada
uma e depois uma função aqui e digamos que cada uma delas é um nome.
E então, o que nós faríamos é conosco, mas vamos fazer algo como o conselho que loguei eu amo o nome mais.
Lá nós vamos e nós conseguimos.
Eu amo Charlie, eu amo Dave.
Eu amo Maddy. Eu amo Caitlin.
OK, então é só isso.
há muito, mas, no que diz respeito ao código, é realmente bastante curto apenas alguns novos conceitos.
E não quero dizer que, de uma forma irreverente,
Esse protótipo que eu realmente não passei e fiz isso de propósito.
Não é importante agora se concentrar nisso, mas o que eu quero que você se concentre
é essa idéia de passar uma função para que possamos passar uma função para um argumento ou como um
argumento e não será executado Intel Inside the código em que nos referimos e adicione esses parênteses no final.
Portanto, sem esses parênteses, a função não faz nada.
Isso existe.
É um valor que podemos fazer referência, mas nós adicionamos os parênteses e realmente é executado.
Tudo bem, ótimo.
Eu vejo na próxima unidade onde começamos a falar sobre objetos