Ik Welkom terug.
Dus deze les is volledig optioneel.
Het is een beetje een bonus.
Het is echt iets dat enigszins interessant.
Dat is waarom ik het laten zien voor je, maar het is niet noodzakelijk om de cursus.
En we gaan praten over hoe foreach werkt en we gaan onze eigen versie van de voor elk te bouwen.
Dus we gaan om te praten over hoe je een functie die een functie heeft als argument te schrijven en vervolgens voert die functie erin.
Dus nogmaals volledig optioneel.
De andere reden waardoor het optioneel is dat het een beetje meer geavanceerde en ik wil niet aan iedereen die ik wil niet dat je slecht als het als het is verwarrend voor u, want het is verwarrend voelen intimideren en vaak duurt het meerdere herhalingen van dit.
Voor mijn leerlingen om het te krijgen.
Dus het is helemaal optioneel.
En dit is belangrijk, maar het is niet essentieel voor het maken van applicaties.
Het is niet noodzakelijk om vooruit in de loop.
Het is iets wel dat als je probeert te kijken het een keer nu en het niet een ton van de zin om je kon je het opnieuw tegen het einde van de les maken zodra je wat meer ervaring Javascript krijgen.
En dat is iets wat ik moet doen met mijn studenten in persoon de hele tijd ook.
Zoals ik al zei hebben we opnieuw dit onderwerp.
Dus laten we beginnen gaan we onze eigen te bouwen voor elk en we gaan beginnen met het definiëren van een functie belde net voor elk en het gaat om een ​​beetje anders te werken dan de manier waarop de echte foreach werkt omdat op dit moment de manier waarop voor elke werken is definieer ik een serie laten we noemen het Nom en we zullen een aantal nummers hebben daar als dat.
En ik roep voor elke op Nomes.
Dus Nums dot voor elk en dan geef ik hem een ​​functie en we zagen dit, dus ik zal je niet te veel hopelijk vervelen, maar we zullen gewoon dit nummer bellen en dan gewoon doen een eenvoudige constante log.
Nee.
Daar gaan we.
Het duurt een functie en roept een functie op elk element in de array.
Knops maar merken dat we niet hoefden te Nom's in passeren voor elk.
Hij wist alleen over de cijfers wist over de serie omdat we Gnome's stip voor elk.
Dus we zijn niet van plan om te beginnen met het definiëren van een functie die op die manier werkt.
We gaan beginnen met een die er zo uitziet.
Nou noem het mijn voor elk en in plaats van het nemen van slechts één argument zal twee duren.
De eerste is de array en de tweede is de functie.
Dus array zal zijn Nomes.
En dit zou de functie zijn.
Dus als je wilde dezelfde code met Nom's het eruit zou zien als dit mijn voor comma elke Nom en lopen dan onze hele functie hier die hetzelfde zijn als de ene boven op zal kijken.
Dus we beginnen met deze versie, want het is eenvoudiger.
Het is een beetje meer syntax, maar het is eenvoudiger voor ons te schrijven.
Dus nogmaals we passeren in Nom's in plaats van alleen grijpen met behulp van speciale javascript magie.
Er is een manier om het te grijpen als je een methode definieert op iets als we hier hebben, maar we die krijgt.
OK dus laten we definiëren een functie MYF of per stuk.
En neemt in een array en functie.
En we kunnen niet bellen die functie, want dat is een speciaal woord in Javascript.
Dus we noemen het phunk of F hoe je het ook wilt noemen en dan gaan we het openstellen van onze functie.
En laten we beginnen door te praten over wat voor elk eigenlijk doet.
Dus onthoud het duurt die functie en noemt het voor elk item in de array.
Dus om dat te doen moeten we een lus te gebruiken om iets te doen voor elk item in een array.
We moeten een lus hebben.
Dus we gewoon gebruik maken van een lus zal lus door array en vervolgens in de loop we gaan gewoon om de functie te bellen en alles wat we moeten doen om de functie aan te roepen is haakjes toe te voegen aan het eind.
Dus het is een beetje verwarrend is dit dingen die mijn leerlingen altijd worstelen met in en iedereen die het leren javascript krijgt hier opgehangen.
Maar vergeet niet het onderscheid tussen de naam van een functie zonder haakjes.
Dat is gewoon een verwijzing naar de functie zelf.
Maar het is niet het zo snel uitvoeren als ik de haakjes toevoegen duurt die code in plaats van func en voert deze uit.
Dus ik kan je hier een voorbeeld geven.
Als we gewoon doen.
Laat me knip dit uit.
Als we alleen maar om te waarschuwen alert eigenlijk niet lopen.
Maar zodra we de haakjes toe te voegen krijgen we een waarschuwing.
En ik heb niets in passeren, maar het is nog steeds uitgevoerd van de code.
Dus laten we terug naar onze code en in plaats van te gaan dan alleen maar bellen phunk meteen als deze we zullen lus door de array.
Dus voeg ik een opmerking lus door array en vervolgens in de lus oproep phunk voor elk item in de array.
Dus om lus door de array.
Nou, dit is een lus.
U kunt ook gebruik maken van een while lus maar we zullen gebruik maken van een lus.
Dus voor var I gelijk nul I minder dan rr dot lengte die de naam van het argument.
A R R.
En dan heb ik plus plus, net als dat en dan zal ik deze lijn verhuizen naar ons lus want wat we willen doen is binnen deze lus we willen noemen Phunk dus kunnen we beginnen door gewoon te bellen mensen net als dat.
Dus wat functie wordt doorgegeven als het tweede argument gaat eenmaal voor elk item in de array we nog steeds ontbreekt een belangrijk stuk dat is om de gegevens daadwerkelijk overgaan van elk item in de array in worden genoemd.
Maar dit hele kolom voor elk item.
Dus laten we druk op enter.
En nu laten we proberen het uitvoeren van deze.
Ik ga een serie genaamd kleuren of favoriete mijn favoriete ten minste oranje definiëren.
En we zullen gewoon stoppen bij geel.
Dus drie punten en dan ga ik gewoon naar mijn vier elkaar bellen en doorgeven in kleuren als de array en dan zal ik gewoon doen alert.
En we niet toe te voegen haakjes onthouden, omdat die onmiddellijk alert zal uitvoeren.
Dat is niet wat we willen.
We willen dat de functie mijn voor elk van de ene naar alert uit te voeren zijn.
Dus vergeet niet dat phunk eigenlijk alert.
In dit geval, maar het kan ook consul dat loggen of het vaakst zou het een anonieme functie te zijn.
We definiëren dat zou worden genoemd Inside of phunk.
Dus laten we veranderen het terug om te waarschuwen en geeft druk op enter.
Ik krijg een waarschuwing.
Ik raakte OK, ik krijg een ander alert.
Ik raakte OK en ik krijg nog een waarschuwing.
Dus wat is gebeurt is dat dit voor lus looping dan reeks die in ons geval is een serie van kleuren met drie items.
Dus drie keer deze loops en elke keer roept func en alles wat phunk is alert.
Dat is alles wat het is.
waarschuwt dus een lege alert drie keer omdat we niets passeren in funk.
Dus om het te laten werken met data in alert worden doorgegeven of wat func is alles wat we doen is langs een beetje van data hier en dat beetje van de gegevens wordt verondersteld om elk item in de array.
Dus de manier waarop we toegang tot elk item is met behulp van I.
Dus als ik me goed herinner de code in hier Ik voeg serie beugel.
Dus de eerste keer door de lus zal func die alert te bellen.
In dit geval met het eerste item in de array die zo is te lezen zullen alert lezen te krijgen en dan wordt ik er een.
Dus dan herinneren phunk die nog steeds alert met een scala aan een die is oranje.
Zo krijgen we alert oranje en vervolgens nog een keer alert gele zeg dus zie dat nu als ik me goed herinner mijn executie hier mijn voor elke kleuren alert.
Nu geeft het me rood oranje en geel en dat is eigenlijk alles wat er te definiëren voor elk.
Maar zoals ik al zei dat de meeste van de tijd zul je het niet zien als deze waar we langs een benoemde functie meestal een anonieme functie te hebben.
Dus laten we niet geven het een schot.
Maar het gebruik van een anonieme functie.
Dus mijn voor elk en dan zullen we passeren en de kleuren weer en dan een anonieme functie.
En vergeet niet dat, zelfs al is er tussen haakjes hier deze zijn zeer verschillend tussen haakjes dan die zei te roepen een functie.
Dus laat me je eigenlijk zien wat ik bedoel.
Als ik dit eerste deel te verwijderen en ik heb net een anonieme functie hier.
En alles wat we doen binnen is dialoog raad.
Ik ben een functie en ik druk op Enter op dit moment en ik kan ruimteloos een beetje voor u dus het is een beetje makkelijker om te zien wat er gebeurt.
Wat denk je dat er gaat gebeuren.
Natuurlijk ook dat gebeurde.
Laat me teruggaan en toe te voegen in de afsluitende haakjes voor mijn raad dot log.
Nu, wat denk je dat er gaat gebeuren.
Ik denk dat het soort van ruïnes van het moment hier.
Maar zoals ik druk op Enter je zult zien dat er niets echt gebeurt.
Ik krijg een waarde die wordt teruggegeven aan me een waarde die teruggestuurd.
Maar de code is niet uitgevoerd zie ik niet constant vooruitzichten en dat komt omdat deze anonieme functie nooit werd ingeroepen.
In principe bestond voor een moment en nu is het weg.
Ik heb niet geef het een naam.
Ik heb het niet op te slaan in een variabele.
Ik kan nooit noemen het weer tenzij ik herschrijven.
Dus om deze functie ik die haakjes daarna moet nog uit te voeren.
Dus dit is een stuk van de syntaxis het is een soort van lelijke in mijn mening.
Maar nu, als ik die haakjes had krijg ik de functie.
Dus het is hetzelfde toen we dit mijn doen voor elke kleuren en dan passeren we een anonieme functie hier.
En laten we zeggen dat deze functie doet helemaal niets laten we zeggen alleen waarschuwingen hi deze functie niet wordt hier ingeroepen.
Dit is de functie hier.
We moeten nog steeds die haakjes daarna zoals wij hier hebben.
En dat komt van binnenuit mijn foreach, waar we die haakjes toevoegt op funk en funk.
In ons geval hier is de gehele tweede argument.
Dus als je een beetje verloren in deze niet meer zorgen te maken is niet cruciaal voor de rest van de cursus.
Maar probeer het later nog eens aan het einde, dus ik zoiets kan doen waar ik gewoon alert hoog of ik ben niet echt met behulp van de gegevens, zoals rood oranje en geel.
Het is niet zo gebruikelijk om dat willen doen, maar als ik druk op enter.
Je zult zien dat ik krijg een high twee en drie hoge tonen.
Dus voor elk item in de array die kleur er drie items.
Het roept deze hele functie, maar vaker wel dan niet wat we wilden doen, is het gebruik van die kleur eigenlijk maken zoals wij hier doen.
Of we kunnen beginnen, zoals elke kleur.
Dus alles wat we moeten doen is het aanvaarden van een argument in onze functie.
Dus mijn foreach en dat is gespreid dit een beetje.
Dus functie en deze kleur zal worden genoemd, maar dat kan van alles zijn natuurlijk net als elke andere functie die we definiëren.
Het kan bijna alles wat hij heeft wel een geldige javascript naam kan het niet iets als functie of var die voorbehouden zijn voor hun zoekwoorden, maar iets anders zal werken te zijn.
Dus dat is wat we hier hebben.
Een anonieme functie die nu wordt verwacht een argument en dan kunnen we het gebruiken binnenkant van hier.
Dus console dot log kleur te beginnen.
Dus om te lopen door dit nog een keer we lus door kleuren.
In dit geval is dat wat ons aanbod is een zijn, zijn we lus door dat elke keer door middel van We noemen phunk dat dit hele ding hier.
Ik ben eraan herinnerend dat in het voorbijgaan in het huidige item in die array.
Dus we roepen deze code hier.
En dan zijn we passeren in rood en vervolgens oranje en geel.
Zodat kleur gelijk is aan rood of oranje of geel.
Elke keer dat door middel van deze lijst zoals je kunt zien we rood oranje en geel.
Dus dat is de fundamentele manier van het schrijven voor elk.
Maar als een belofte Ik wil ook laten zien hoe wij worden toegevoegd aan een array, zodat we konden schrijven als deze kleuren dot voor elk punt of mijn voor elke omdat er al voor elk daar.
We zullen het met rust laten.
Maar de kleur van mijn voor elk.
En dan kunnen we overgaan in een functie hier om dat te doen.
En wanneer een sprong een beetje voor mezelf hebben we nog niet gehad over objecten hebben we nog niet gehad over prototypes, maar ik ga gewoon hier laten zien en dan zullen we meer te weten over het als de cursus gaat op.
In feite is de volgende eenheid is alles over objecten.
Dus wat we doen is dat we eigenlijk een methode toe te voegen aan een re dot prototype produ type dat u nooit werktijd het en we zullen het mijn oproep voor elk.
En voordat ik dat doe, dat de mededeling van de autocomplete.
Met al deze methoden die bestaan ​​op de array prototype.
Dus dat is waar we al die methoden zoals push en pop en shift en unshipped en voor ieder die er bestaan ​​op elke enkele array ze gedefinieerd op wat er de array prototype en alles gedefinieerd op die prototype genoemd krijgt is beschikbaar is het geschikt voor gebruik in elke enkele array .
Dus laten we proberen dit nu lees prototype mijn voor elk een functie en de functie neemt slechts één argument.
Nu als we hier duurt het slechts func en vervolgens binnen die we nodig hebben om onze dezelfde logica waar we lus door de array en dan bellen een functie voor elk item in de array te doen.
Het enige dat verandert is dat we niet een argument te accepteren.
A R zijn we niet de array meer hebben, maar we doen het hier hebben.
Het is een beetje anders.
We moeten het sleutelwoord dit gebruiken.
Dus het sleutelwoord dit gaat om te verwijzen naar de specifieke array die we bellen Assan.
Dus in het geval van kleuren dot voor elk als we schreven het zoekwoord dit in de voor elke definitie zou verwijzen naar de kleuren.
Maar als we deden nummers voor elke hond of spullen voor elk.
Dit verwijst naar de specifieke array die we nu een beroep op.
Dus we gaan doen een vier VAR ik gelijk is aan nul.
Terwijl ik minder dan dit punt zoals ik plus plus.
Dus dat is de eerste verandering.
We hebben dit verband dat verwijst naar de specifieke matrix.
Dus we zijn niet in meer door te geven.
Het volgende ding dat we doen is dat we noemen phunk net zoals we deden in de originele versie, behalve in plaats van de array beugel Ik zou deze beugel doen.
Ik net als dat.
En dat is eigenlijk alles wat er is.
Dus we pasten het een beetje door het vervangen van een r r die de naam van onze argumenten heeft.
En het kan zijn om het even wat uiteraard door het te vervangen door het sleutelwoord dit.
Dus laten we proberen het uit om het te gebruiken.
We moeten een nieuwe array te maken.
Dus ik zal een zogenaamde vrienden te maken en we hebben er een paar vrienden.
Charlie.
Dave Matie en Caitlin zomaar druk op enter.
Nu kunnen we doen vrienden dot mijn voor elk en dat duurt een enkele functie als argument.
Dus we konden geef het alert als we willen.
En we krijgen Charlie.
Dave Madie en Caitlin maar meestal zouden we het met een anonieme functie als dit mijn voor elk en vervolgens een functie in het hier en laten we zeggen dat elk van deze is een naam.
En dan wat we zouden doen is aan ons maar laten we zoiets Counsil dat log ik hou plus de naam te doen.
Daar gaan we en we krijgen.
Ik houd van Charlie Ik houd van Dave.
Ik houd van Maddy I love Caitlin.
OK dus dat is alles wat er is.
En dan bedoel ik niet dat op een oneerbiedige manier is er veel om het maar zo ver als de code is het eigenlijk vrij kort slechts enkele nieuwe concepten.
Dit prototype ding dat ik echt niet over te gaan en dat deed ik op de grond.
Het is niet zo belangrijk op dit moment om zich te concentreren op dat, maar wat ik wil dat je te concentreren op is dit idee van het passeren van een functie in de buurt, zodat we een functie kunnen doorgeven aan een argument of als argument en het zal niet worden uitgevoerd Intel Inside the code we eigenlijk verwijzen naar het en voeg die tussen haakjes aan het eind.
Dus zonder de haakjes van de functie doet niets.
Het bestaat.
Het is een waarde die we kunnen verwijzen, maar we voegen de haakjes en het is daadwerkelijk zijn uitgevoerd.
Oké geweldig.