Bienvenido de nuevo.
Entonces esta lección es completamente opcional.
Es un poco de una bonificación.
Es realmente algo que es algo interesante.
Es por eso que te lo estoy mostrando, pero no es esencial para el curso.
Y vamos a hablar sobre cómo funciona Foreach y vamos a construir nuestra propia versión de cada uno.
Entonces vamos a hablar sobre cómo se escribe una función que toma una función como argumento
y luego ejecuta esa función dentro de ella.
Así que de nuevo completamente opcional.
La otra razón para hacerlo opcional es que es un poco más avanzado y no quiero
intimidar a todos, no quiero que te sientas mal si es confuso para ti porque es confuso y,
a menudo, requiere múltiples repeticiones. de esta.
Para que mis alumnos lo obtengan
Entonces es totalmente opcional.
Y esto es importante, pero no es esencial para hacer aplicaciones.
No es esencial avanzar en el curso.
Sin embargo, si intentas mirarlo una vez y no tiene mucho sentido para
ti, puedes volver a visitarlo una vez que tengas más experiencia en Javascript.
Y eso es algo que tengo que hacer con mis alumnos en persona todo el tiempo también.
Como mencioné, volvemos a visitar este tema.
Así que empecemos vamos a construir el nuestro para cada uno y comenzaremos por definir una
función que acaba de llamarse para cada uno y va a funcionar de una manera un
poco diferente a la forma en que funciona el foreach real porque ahora mismo la forma en que para cada obra
es que defino una matriz, llamémosla Nom y tendremos algunos números allí.
Y llamo por cada uno en Nomes.
Así que nums dot para cada uno y luego le doy una función y acabamos de ver esto, así
que no te aburriré demasiado con suerte, pero llamaremos a este número y luego haremos un simple registro constante.
No.
Aquí vamos.
Toma una función y llama a una función en cada elemento de la matriz.
Knops, pero note que no teníamos que pasarle a Nom a cada uno.
Simplemente sabía sobre los números que sabía sobre la matriz porque hicimos el punto de Gnome para cada uno.
Entonces, no vamos a comenzar definiendo una función que funcione de esa manera.
Vamos a comenzar con uno que se vea así.
Bueno, llámalo mío para cada uno y en lugar de tomar solo un argumento, tomará dos.
Y el primero es el conjunto y el segundo es la función.
Así que la matriz será Nomes.
Y esta sería la función.
Entonces, si quisieras ejecutar el mismo código con Nom, se vería así para cada coma de Nom y
luego para toda nuestra función aquí, que se verá igual que la que está encima.
Así que estamos comenzando con esta versión porque es más simple.
Es un poco más de sintaxis pero es más simple para nosotros escribir.
Así que de nuevo estamos pasando Nom en lugar de simplemente agarrarlo utilizando magia especial de JavaScript.
Hay una manera de atraparlo si está definiendo un método en algo como lo que tenemos aquí, pero llegaremos a
eso.
De acuerdo, definamos una función MYF o cada una.
Y toma una matriz y una función.
Y no podemos llamar a esa función porque esa es una palabra especial en Javascript.
Entonces lo llamaremos phunk o F como quieras llamarlo y luego abriremos nuestra función.
Y comencemos hablando de lo que realmente hace cada uno.
Así que recuerda que toma esa función y la llama para cada elemento de la matriz.
Entonces, para hacer eso necesitamos usar un bucle para hacer cualquier cosa por cada elemento en una matriz.
Tenemos que tener un bucle.
Así que solo usaremos un bucle for para recorrer la matriz y luego en el bucle solo vamos a llamar a la
función y todo lo que tenemos que hacer para llamar a la función es agregar paréntesis al final.
confuso, estas son las cosas en las que mis alumnos siempre luchan y cualquiera que esté aprendiendo javascript se cuelga aquí.
Por lo tanto, es un poco
Pero recuerda la distinción entre el nombre de una función sin paréntesis.
Eso solo se refiere a la función en sí misma.
Pero no lo está ejecutando tan pronto como agrego los paréntesis, toma ese código en lugar de func y
lo ejecuta.
Entonces puedo darte un ejemplo aquí.
Si solo hacemos
Déjame cortar esto.
Si solo alertamos alerta, en realidad no se ejecuta.
Pero tan pronto como agreguemos esos paréntesis, recibiremos una alerta.
Y no pasé nada, pero todavía se ejecutó el código.
Regresemos a nuestro código y, en lugar de simplemente llamar al phunk de inmediato, recorreremos
el conjunto.
Así que agrego un bucle de comentario a través de una matriz y luego dentro de la frase de llamada en bucle para cada elemento en la matriz.
Entonces, recorrer la matriz.
Bueno, esto es un ciclo for.
También podría usar un ciclo while pero usaremos un ciclo for.
Por lo tanto, para var yo soy igual a cero que menos de una longitud de punto r, que es el nombre del argumento.
A R R.
Y luego, además,
más solo así y luego moveré esta línea hacia nuestro ciclo porque lo que queremos hacer es dentro de este ciclo
que queremos llamar phunk para que podamos comenzar simplemente llamando a la gente así.
función que se transfiera, ya que el segundo argumento se llamará una vez para cada elemento de la matriz, todavía
nos falta una pieza importante que es pasar los datos de cada elemento en la matriz.
Entonces, cualquiera sea la
Pero esta columna completa para cada artículo.
Así que vamos a presionar enter.
Y ahora intentemos ejecutar esto.
Voy a definir una matriz llamada colores o mi favorito favorito al menos naranja.
Y nos detendremos en amarillo.
Así que tres elementos y luego voy a llamar a mis cuatro cada uno y pasar los colores como la matriz y luego voy
a hacer la alerta.
Y no agregamos paréntesis recordar porque eso ejecutará la alerta de inmediato.
Eso no es lo que queremos.
Queremos que la función sea para que cada uno sea el que ejecute la alerta.
Así que recuerda que phunk está realmente alerta.
En este caso, pero también puede ser cónsul ese log o más a menudo sería una función anónima.
Definimos que se llamaría Inside of phunk.
Cambiemos de nuevo a alerta y presionamos enter.
Recibo una alerta.
Toco OK, recibo otra alerta.
Presioné OK y recibí una alerta más.
Entonces, lo que está sucediendo es que este ciclo está girando sobre la matriz, que en nuestro caso es una matriz
de colores con tres elementos.
Así que tres veces se repite y cada vez que se llama func y todo lo que phunk es está alerta.
Eso es todo lo que es.
Entonces, alerta una alerta vacía tres veces porque no estamos pasando nada al funk.
único que hacemos es pasar un poco de datos aquí y se supone que ese pequeño dato es cada elemento de la matriz.
Por lo tanto, para que funcione con los datos pasados ​​a alerta o cualquier función que sea, lo
Entonces, la forma en que accedemos a cada elemento es usando I.
Entonces, si recuerdo el código aquí, simplemente agrego el corchete de la matriz.
Entonces, la primera vez a través del ciclo esto llamará a func que está alerta.
En este caso, con el primer elemento de la matriz que se lee, se leerá la alerta y luego se
convertirá en uno.
Entonces recuerde phunk que todavía está alerta con una matriz de naranja.
una vez más alerta amarilla, por lo que lo veo ahora si recuerdo mi ejecución aquí, para cada alerta de colores.
Entonces nos ponemos en alerta naranja y luego
Ahora me da rojo anaranjado y amarillo, y eso es todo lo que hay que definir para cada uno.
Sin embargo, como he dicho la mayoría del tiempo, no lo verás así, donde pasamos una función con
nombre que generalmente tendrá una función anónima.
Así que no le demos una oportunidad.
Pero usando una función anónima.
Así que mi para cada uno y luego pasaremos los colores otra vez y luego una función anónima.
paréntesis aquí, estos son paréntesis muy diferentes a los que se mencionan al invocar una función.
Y recuerde que a pesar de que hay
Así que déjame mostrarte lo que quiero decir.
Si borro esta primera parte y solo tengo una función anónima aquí.
Y todo lo que hacemos adentro es un diálogo de consejo.
Soy una función y presiono Enter ahora y puedo desplazarme un poco para que sea un poco más
fácil ver lo que está sucediendo.
Qué piensas que va a pasar.
Bueno, por supuesto que sucedió.
Permítanme regresar y agregar los paréntesis de cierre para mi consejo dot log.
Ahora, ¿qué crees que va a pasar?
Supongo que arruina el momento aquí.
Pero cuando presiono Enter verás que nada sucede realmente.
Obtengo un valor que me devuelve un valor que me devuelve.
Pero el código no se ejecuta, no veo una perspectiva constante y eso se debe a que nunca se
invocó esta función anónima.
Básicamente existió por un momento y ahora se ha ido.
No le di un nombre.
No lo guardé en una variable.
Nunca podré volver a llamarlo a menos que lo reescriba.
Entonces para ejecutar esta función todavía necesito esos paréntesis después.
Así que esta es mucha sintaxis, es algo feo en mi opinión.
Pero ahora si tuviera esos paréntesis, obtengo la función.
Entonces es lo mismo cuando hacemos esto para cada color y luego pasamos una función anónima aquí.
que esta función hace cualquier cosa, solo digamos alertas, esta función no está siendo invocada aquí.
Y digamos
Esta es la función aquí.
Todavía necesitamos esos paréntesis después, como tenemos aquí.
Y eso viene de dentro de mi foreach donde estamos agregando esos paréntesis en funk y funk.
En nuestro caso, aquí está todo el segundo argumento.
Entonces, si estás un poco perdido en esto, no te preocupes otra vez, no es crucial para el resto del curso.
Pero inténtalo de nuevo más tarde al final para que pueda hacer algo como esto, en el que solo me pongo en
alerta o no estoy usando los datos como rojo naranja y amarillo.
No es tan común querer hacer eso, pero si presiono enter.
Verás que obtengo uno alto dos y tres máximos.
Por lo tanto, para cada elemento de la matriz de ese color hay tres elementos.
Llama a esta función completa, pero la mayoría de las veces lo que queríamos hacer es usar ese color
como lo hacemos aquí.
O podemos comenzar como cada color.
Entonces, todo lo que tenemos que hacer es aceptar un argumento en nuestra función.
Así que mi foreach y eso está espaciado un poco.
Así que funcionan y esto se llamará color, pero eso puede ser cualquier cosa, por supuesto, como cualquier otra
función que definamos.
Puede ser casi cualquier cosa que tenga que ser un nombre de JavaScript válido, no puede ser algo
así como función o var que están reservados para sus palabras clave, pero cualquier otra cosa funcionará.
Entonces eso es lo que tenemos aquí.
Una función anónima que ahora espera una discusión y luego podemos usarla aquí.
Así que consola el color del registro de punto para comenzar.
Entonces, para recorrer esto una vez más, recorremos los colores.
En este caso, eso es lo que nuestra matriz es. Estamos atravesando eso cada vez que estamos
llamando phunk, que es todo esto aquí mismo.
Estoy recordando eso al pasar el elemento actual en ese conjunto.
Así que estamos llamando a este código aquí.
Y luego estamos pasando en rojo y luego en naranja y luego en amarillo.
Entonces el color es rojo, naranja o amarillo.
Cada vez que veas esta lista, puedes ver el naranja rojo y el amarillo.
Entonces esa es la forma básica de escribir para cada uno.
Pero como una promesa, también te mostraría cómo nos agregan a una matriz para que podamos escribirlo como este
punto de colores para cada punto o punto para cada uno, ya que ya hay para cada uno.
Lo dejaremos en paz.
Pero dale color a cada uno.
Y luego podemos pasar una función aquí para hacer eso.
Y cuando me adelanto un poco, no hemos hablado de objetos, pero no hemos hablado de
prototipos, pero se los mostraré aquí y luego aprenderemos más sobre él a medida que avance
el curso. en.
De hecho, la siguiente unidad tiene que ver con objetos.
Entonces, lo que hacemos es agregar un método a un tipo de producto de prototipo re
dot que nunca se deletrea y lo llamamos mío para cada uno.
Y antes de que lo note, el autocompletar.
Estos son todos los métodos que existen en el prototipo de matriz.
Así que ahí es donde obtenemos todos esos métodos como push y pop y shift y unshipped
y para cada uno de los que existen en cada matriz están definidos en lo que se llama el prototipo de matriz
y cualquier cosa definida en ese prototipo está disponible en cada matriz .
Probemos esto, ahora leemos el prototipo, porque cada uno es una función y la
función solo toma un argumento.
Ahora, al igual que tenemos aquí, solo se necesita una función y luego, dentro, tenemos que hacer nuestra misma lógica cuando recorremos la matriz y
luego llamamos a una función para cada elemento de la matriz.
Lo único que cambia es que no aceptamos un argumento.
A R, ya no tenemos la matriz, pero la tenemos aquí.
Es un poco diferente.
Tenemos que usar la palabra clave esto.
Entonces, la palabra clave se referirá a la matriz particular a la que llamamos Assan.
Entonces, en el caso de los colores, el punto para cada uno de nosotros si escribimos la palabra clave esto dentro de cada definición, se
referiría a los colores.
Pero si hiciéramos números para cada cosa o cosas para perros para cada uno.
Esto se refiere a la matriz específica en la que lo estamos llamando.
Así que vamos a hacer un cuatro VAR I igual a cero.
Mientras que soy menos que este punto como I plus plus.
Entonces ese es el primer cambio.
Usamos este enlace que se refiere a la matriz específica.
Entonces ya no lo estamos pasando.
Lo siguiente que hacemos es llamar a phunk tal como lo hicimos en la versión original, pero
en lugar de corchete de matriz, haría este corchete.
Solo me gusta eso.
Y eso es todo lo que hay que hacer.
Así que simplemente lo adaptamos un poco reemplazando un r r que tiene el nombre de nuestro argumento.
Y podría haber sido algo por supuesto reemplazándolo con la palabra clave esto.
Así que probémoslo para usarlo.
Necesitamos hacer una nueva matriz.
Así que haré uno llamado amigos y lo tendremos tener algunos amigos.
Charlie.
Dave Matie y Caitlin así como ese golpe entran.
Ahora podemos hacer amigos dot my para cada uno y eso toma una sola función como argumento.
Entonces podríamos ponerlo alerta si queremos.
Y tenemos a Charlie.
Dave Madie y Caitlin, pero normalmente lo veríamos con una función anónima como esta para cada una
y luego una función aquí y digamos que cada una de ellas es un nombre.
Y entonces, lo que haríamos depende de nosotros, pero hagamos algo como counsil that log I love plus name.
Ahí vamos y nos damos cuenta.
Amo a Charlie, amo a Dave.
Amo a Maddy, amo a Caitlin.
OK, así que eso es todo.
mucho, pero en lo que respecta al código, en realidad es bastante breve, solo algunos conceptos nuevos.
Y no me refiero a que de manera frívola hay
Este prototipo que realmente no revisé y lo hice a propósito.
No es tan importante en este momento centrarme en eso, pero lo que sí quiero es que
te centres en esta idea de pasar una función para que podamos pasar una función a un argumento o como un
argumento y no se ejecutará Intel Inside the código en el que realmente nos referimos y agregamos esos paréntesis al final.
Entonces, sin esos paréntesis, la función no hace nada.
Existe.
Es un valor al que podemos hacer referencia pero agregamos los paréntesis y en realidad se ejecuta.
Está bien, genial.
Veré en la próxima unidad donde comenzamos a hablar sobre los objetos