Sono tornato.
Quindi questa lezione è completamente opzionale.
È un po 'un bonus.
È davvero qualcosa che è in qualche modo interessante.
Ecco perché te lo sto mostrando ma non è essenziale per il corso.
E parleremo di come funziona foreach e costruiremo la nostra versione per ciascuno.
Quindi parleremo di come scrivi una funzione che prende una funzione come argomento e
poi esegue quella funzione al suo interno.
Quindi di nuovo completamente facoltativo.
L'altro motivo per renderlo facoltativo è che è un po 'più avanzato e non voglio
intimidire tutti quelli che non voglio che ti senta male se è confuso con te perché è
confuso e spesso richiede più ripetizioni di questo.
Per i miei studenti per averlo.
Quindi è totalmente opzionale.
E questo è importante ma non è essenziale per creare applicazioni.
Non è essenziale andare avanti nel corso.
È qualcosa però che se provi a guardarlo una volta e non ha un senso
per te, potresti rivisitarlo verso la fine della lezione una volta che avrai più esperienza Javascript.
E questo è qualcosa che ho sempre a che fare con i miei studenti di persona.
Come ho detto, rivisitiamo questo argomento.
Cominciamo quindi a costruire il nostro per ognuno e inizieremo a definire una funzione
chiamata per ciascuno e funzionerà in modo leggermente diverso rispetto al modo in cui
funziona il foreach reale perché in questo momento il modo in cui per ogni opera definisco una matrice
chiamiamola Nom e avremo alcuni numeri lì in quel modo.
E chiedo a ciascuno di Nomes.
Quindi nums punto per ciascuno e poi gli do una funzione e l'abbiamo appena visto, quindi non
ti annoierò troppo speranzoso, ma chiameremo solo questo numero e poi faremo un semplice registro costante.
No.
Eccoci.
Prende una funzione e chiama una funzione su ogni elemento dell'array.
Knops ma nota che non dovevamo superare Nom's per ciascuno.
Sapeva solo dei numeri che sapeva sull'array perché facevamo i punti di Gnome per ognuno.
Quindi non inizieremo definendo una funzione che funzioni in questo modo.
Cominceremo con uno che assomiglia a questo.
Beh, chiamatelo per ciascuno e invece di prendere solo una discussione ci vorranno due.
E il primo è l'array e il secondo è la funzione.
Quindi la matrice sarà Nomes.
E questa sarebbe la funzione.
Quindi, se volessi eseguire lo stesso codice con Nom's, sembrerebbe che questo sia per la virgola di ciascun
Nom e quindi tutta la nostra funzione qui che apparirà uguale a quella in cima.
Quindi stiamo iniziando con questa versione perché è più semplice.
È un po 'più sintassi ma per noi è più semplice scrivere.
Quindi di nuovo stiamo passando in Nom's piuttosto che afferrarlo usando una speciale magia javascript.
C'è un modo per afferrarlo se stai definendo un metodo su qualcosa come quello che abbiamo qui, ma ci
arriveremo.
OK, quindi definiamo una funzione MYF o ciascuna.
E contiene una matrice e una funzione.
E non possiamo chiamare quella funzione perché questa è una parola speciale in Javascript.
Quindi chiameremo "phunk" o "F" come vuoi chiamarlo e poi apriremo la nostra funzione.
E iniziamo parlando di ciò che effettivamente fa per ciascuno.
Quindi ricorda che prende quella funzione e la chiama per ogni elemento dell'array.
Quindi per farlo dobbiamo usare un ciclo per fare qualsiasi cosa per ogni oggetto in un array.
Dobbiamo avere un ciclo.
Quindi useremo solo un ciclo for per fare un ciclo attraverso l'array e poi nel ciclo chiameremo solo la
funzione e tutto ciò che dobbiamo fare per chiamare la funzione è aggiungere parentesi alla fine.
questa è la cosa con cui i miei studenti fanno sempre fatica e chiunque stia imparando javascript viene appeso qui.
Quindi è un po 'di confusione
Ma ricorda la distinzione tra il nome di una funzione senza parentesi.
Questo si riferisce solo alla funzione stessa.
Ma non è in esecuzione non appena aggiungo le parentesi che prende quel codice al posto di func e
lo esegue.
Quindi posso darti un esempio qui.
Se lo facciamo e basta
Lasciami fare questo.
Se solo per avvisare l'avviso non funziona realmente.
Ma non appena aggiungiamo quelle parentesi otteniamo un avviso.
E non ho passato nulla ma è ancora eseguito il codice.
Quindi torniamo al nostro codice e invece di chiamare subito phunk in questo modo passeremo
attraverso l'array.
Così aggiungo un ciclo di commento attraverso l'array e poi all'interno del phunk di chiamata loop per ogni elemento dell'array.
Quindi per scorrere l'array.
Bene, questo è un ciclo for.
Potresti anche usare un ciclo while, ma useremo un ciclo for.
Quindi per var I uguale a zero I meno di una lunghezza di punto r che è il nome dell'argomento.
A R.
E poi aggiungo
plus in questo modo e poi sposterò questa linea nel nostro ciclo perché quello che vogliamo fare è all'interno di questo
ciclo che vogliamo chiamare phunk, così possiamo iniziare chiamando semplicemente la gente proprio così.
la funzione passata mentre il secondo argomento verrà chiamato una volta per ogni elemento dell'array, ci manca
ancora un pezzo importante che deve effettivamente passare i dati da ciascun elemento dell'array.
Quindi, qualunque sia
Ma questa intera colonna per ogni articolo.
Quindi colpiamo invio.
E ora proviamo a farlo.
Definirò un array chiamato colori o preferito il mio preferito almeno arancione.
E ci fermeremo al giallo.
Quindi tre articoli e poi chiamerò i miei quattro ciascuno e passerò a colori come array e poi
farò solo attenzione.
E non aggiungiamo le parentesi, ricordate perché questo eseguirà immediatamente l'allerta.
Non è quello che vogliamo.
Vogliamo che la mia funzione sia quella di eseguire l'avviso.
Quindi ricorda che la phunk è in realtà allerta.
In questo caso, ma può anche essere console che log o più spesso sarebbe una funzione anonima.
Definiamo quello che si chiamerebbe Inside of phunk.
Quindi cambiamo di nuovo in allerta e premi invio.
Ricevo un avviso
Ho colpito OK, ricevo un altro avviso.
Colpisco OK e ricevo un altro avviso.
Quindi, quello che sta succedendo è che questo ciclo per loop è in loop su array che nel nostro caso è una matrice
di colori con tre elementi.
Quindi tre volte lo loop e ogni volta che chiama func e tutta quella phunk è allerta.
Questo è tutto ciò che è.
Quindi avvisa un avviso vuoto tre volte perché non stiamo passando nulla al funk.
è sufficiente, passiamo un po 'di dati qui e quel piccolo bit di dati dovrebbe essere ogni elemento nell'array.
Quindi, per farlo funzionare con i dati che vengono passati in allerta o qualsiasi funzione
Quindi il modo in cui accediamo a ciascun elemento è usando I.
Quindi, se richiamo il codice qui, aggiungo solo la parentesi di array.
Quindi, la prima volta attraverso il ciclo, chiamerà func che è attenta.
In questo caso con il primo elemento dell'array che viene letto, si otterrà la lettura di avviso e
quindi diventerò uno.
Quindi, ricorda la phunk che è ancora in allerta con una matrice arancione.
una volta avviso giallo dicci così, guarda ora se ricordo la mia esecuzione qui per ogni avviso di colori.
Quindi otteniamo allarme arancione e poi ancora
Ora mi dà rosso arancio e giallo e questo è in realtà tutto quello che c'è da definire per ciascuno.
Tuttavia, come ho detto più volte non lo vedrete in questo modo, dove passiamo una funzione con
nome, solitamente avremo una funzione anonima.
Quindi non facciamolo.
Ma usando una funzione anonima.
Quindi il mio per ciascuno e poi passeremo e colori ancora una volta e quindi una funzione anonima.
sono parentesi, queste sono parentesi molto diverse da quelle che hanno invocato una funzione.
E ricorda che anche se qui ci
Quindi lascia che ti mostri davvero cosa intendo.
Se cancello questa prima parte e ho solo una funzione anonima qui.
E tutto ciò che facciamo all'interno è il dialogo di consulenza.
Sono una funzione e premo Invio in questo momento e posso distinguere un po 'di spazio per te, quindi è un
po' più facile vedere cosa sta succedendo.
Cosa pensi che succederà.
Beh, certo che è successo.
Consentitemi di tornare indietro e aggiungere le parentesi di chiusura per il mio diario dot counsel.
Ora cosa pensi che succederà.
Immagino che sia tipo di rovina il momento qui.
Ma quando premo Invio, vedrai che non succede nulla.
Ricevo un valore che mi restituisce un valore che viene restituito.
Ma il codice non viene eseguito Non vedo prospettive costanti e questo perché questa funzione anonima non
è mai stata invocata.
Fondamentalmente è esistito per un momento e ora non c'è più.
Non gli ho dato un nome.
Non l'ho salvato su una variabile.
Non potrò mai chiamarlo di nuovo a meno che non lo riscrivi.
Quindi per eseguire questa funzione ho ancora bisogno di quelle parentesi dopo.
Quindi questa è una grande sintassi, è un po 'brutta secondo me.
Ma ora se ho avuto quelle parentesi ottengo la funzione.
Quindi è la stessa cosa quando facciamo questo per ciascun colore e poi passiamo qui una funzione anonima.
questa funzione fa assolutamente nulla, diciamo solo gli avvisi, ciao questa funzione non viene invocata proprio qui.
E diciamo che
Questa è la funzione proprio qui.
Abbiamo ancora bisogno di quelle parentesi in seguito, come abbiamo qui.
E questo viene dalla mia foreach dove stiamo aggiungendo quelle parentesi su funk e funk.
Nel nostro caso qui è l'intero secondo argomento.
Quindi se sei un po 'perso in questo non ti preoccupare di nuovo non è cruciale per il resto del corso.
Ma riprova più tardi alla fine, così posso fare qualcosa di simile in cui mi limito ad avvisare in alto o in
realtà non sto usando i dati come l'arancione e il giallo.
Non è così comune volerlo fare, ma se premo invio.
Vedrai che ricevo due alti e tre alti.
Quindi per ogni elemento dell'array di quel colore ci sono tre elementi.
Definisce questa intera funzione, ma il più delle volte ciò che volevamo fare è effettivamente utilizzare quel
colore come facciamo qui.
O possiamo iniziare come ogni colore.
Quindi tutto ciò che dobbiamo fare è accettare una discussione nella nostra funzione.
Quindi il mio foreach e questo è distanziato un po 'questo.
Quindi la funzione e questo si chiamerà colore ma può essere qualsiasi cosa, naturalmente, proprio come qualsiasi altra
funzione che definiamo.
Può essere quasi tutto ciò che deve essere un nome javascript valido non può essere qualcosa come
funzione o var che sono riservati per le loro parole chiave, ma qualsiasi altra cosa funzionerà.
Quindi questo è quello che abbiamo qui.
Una funzione anonima che ora si aspetta un argomento e quindi possiamo usarla all'interno di qui.
Quindi il colore del log dei punti della console per iniziare.
Quindi, per passarci un'altra volta, passeremo attraverso i colori.
In questo caso è quello che il nostro array è un è che passiamo attraverso questo ogni volta che
chiamiamo phunk che è tutta questa cosa proprio qui.
Sto ricordando che passando nell'attuale elemento di quell'array.
Quindi stiamo chiamando questo codice qui.
E poi passiamo in rosso, poi in arancione e poi in giallo.
Quindi il colore è uguale a rosso o arancione o giallo.
Ogni volta attraverso questa lista come puoi vedere otteniamo rosso arancione e giallo.
Quindi questo è il modo base di scrivere per ciascuno.
Ma come promessa ti mostrerei anche come veniamo aggiunti a un array in modo da poterlo
scrivere come questo colore per ogni punto o punto per ciascuno poiché c'è già per ognuno.
Lo lasceremo da solo.
Ma colora il mio per ciascuno.
E quindi possiamo passare qui una funzione per farlo.
E quando un salto un po 'più avanti di me stesso non abbiamo ancora parlato di oggetti, non
abbiamo ancora parlato di prototipi, ma te lo mostrerò qui e poi ne impareremo di più mentre
il corso va sopra.
In effetti, la prossima unità riguarda gli oggetti.
Quindi quello che facciamo è che in realtà aggiungiamo un metodo a un prototipo di prototipo re dot
che non lo si scrive mai e lo chiameremo il mio per ciascuno.
E prima di farlo, si noti il ​​completamento automatico.
Questi sono tutti i metodi esistenti sul prototipo dell'array.
Ecco dove prendiamo tutti questi metodi come push e pop e shift e unshipped e per
ognuno di quelli esistenti su ogni singolo array sono definiti su quello che viene chiamato il prototipo dell'array e qualsiasi cosa
definita su quel prototipo è disponibile è utilizzabile in ogni singolo array .
Quindi proviamo ora a leggere il mio prototipo per ciascuna è una funzione e la
funzione accetta solo un argomento.
Ora, come abbiamo qui, ci vuole solo func e poi dentro dobbiamo fare la nostra stessa logica dove passiamo attraverso l'array
e poi chiamiamo una funzione per ogni elemento dell'array.
L'unica cosa che cambia è che non accettiamo una discussione.
A R non abbiamo più la matrice ma ce l'abbiamo qui.
È un po 'diverso.
Dobbiamo usare la parola chiave questo.
Quindi la parola chiave si riferirà al particolare array che chiameremo Assan.
Quindi, nel caso dei colori, punto per ognuno se abbiamo scritto la parola chiave questo all'interno di ogni definizione
si riferirebbe ai colori.
Ma se facessimo numeri per ciascuna o roba per cani per ciascuno.
Questo si riferisce allo specifico array su cui lo stiamo chiamando.
Quindi faremo un quattro VAR I uguale a zero.
Mentre io sono meno di questo punto come I plus plus.
Quindi questo è il primo cambiamento.
Abbiamo usato questo collegamento che si riferisce alla matrice specifica.
Quindi non lo stiamo più passando.
La prossima cosa che facciamo è che chiamiamo phunk proprio come abbiamo fatto nella versione originale tranne che
invece di parentesi di array avrei fatto questa parentesi.
Mi piace proprio questo.
E questo è tutto ciò che c'è da fare.
Quindi l'abbiamo appena adattato un po 'sostituendo un r r che ha il nome del nostro argomento.
E avrebbe potuto essere qualsiasi cosa, naturalmente, sostituendolo con la parola chiave.
Quindi proviamolo per usarlo.
Dobbiamo creare un nuovo array.
Quindi farò chiamare uno degli amici e avremo qualche amico.
Charlie.
Dave Matie e Caitlin sono entusiasti di entrare.
Ora possiamo fare gli amici puntare il mio per ciascuno e che accetta una singola funzione come argomento.
Quindi potremmo semplicemente allertarlo se lo vogliamo.
E prendiamo Charlie.
Dave Madie e Caitlin, ma in genere lo vedremmo con una funzione anonima come questa per ognuno
e quindi una funzione qui e diciamo che ognuno di questi è un nome.
E poi quello che faremmo è per noi, ma facciamo qualcosa come il consiglio che registro I love plus name.
Eccoci e arriviamo.
Amo Charlie, amo Dave.
Io amo Maddy, amo Caitlin.
OK, ecco tutto.
molto da fare ma, per quanto riguarda il codice, in realtà è piuttosto breve solo alcuni nuovi concetti.
E non intendo che in un modo sfacciato ci sia
Questa cosa prototipo che non ho davvero superato e l'ho fatto apposta.
Non è così importante ora concentrarsi su questo, ma quello che voglio che tu ti concentri è
questa idea di passare una funzione in modo che possiamo passare una funzione a un argomento o come argomento e
non verrà eseguita Intel Inside the codice in realtà ci si riferisce ad esso e aggiungere quelle parentesi alla fine.
Quindi senza quelle parentesi la funzione non fa nulla.
Esiste.
È un valore a cui possiamo fare riferimento ma aggiungiamo le parentesi e in realtà viene eseguito.
Va bene, grande
Vedrò nella prossima unità in cui iniziamo a parlare di oggetti