Bienvenido y en esta lección, vamos a hablar sobre las funciones de JavaScript de orden superior. Y en lo que está construido todo esto es la idea de que JavaScript trata las funciones como objetos. Entonces, en lugares, por ejemplo, donde estás acostumbrado a usar variables, también puede utilizar funciones. Lo que significa que podemos pasar una función como parámetro a otro y obtener una función como valor de retorno. Entonces, las funciones son miembros de primera clase de JavaScript. Entonces podemos almacenarlos en variables incluso si queremos. Así que las funciones de orden superior tomar una función como argumento o devolver una función. Y esta es una página con la que trabajaremos y lo completaremos a medida que avanzamos. La buena noticia es, probablemente ya hayas hecho un poco de esto. Por ejemplo, veamos, tengo un montón de botones aquí arriba, funcAsArg. Entonces funciona como un argumento. Si quiero crear un controlador de eventos para eso, Voy a usar la función on de jQuery y el parámetro que toma es el nombre del evento y adivina qué, una función. Entonces podría ser el nombre de una función. eso ya está ahí fuera, podría ser uno anónimo que creamos podría ser la función de flecha que también es anónima. Si alguna vez has hecho eso y supongo que en JavaScript en algún momento, lo has hecho de alguna manera. ¿Adivina qué? Ya estás usando funciones de orden superior, no está mal. Entonces, al hacer clic, solo mostraremos algo en HTML. No hay nada maravilloso en este código aquí. pero un poco quería señalar ¿Qué puede ser que hayas usado con bastante frecuencia? pero tal vez nunca supiste para qué lo estabas usando o por qué funcionó. Ahora, veamos una función que devuelve una función y cómo podríamos estructurar eso. Digamos que voy a cambiar los letreros de un número. Ahora que sería una operación relativamente fácil que hacer por supuesto, pero estamos creando este ejemplo para que podamos mostrar funciones de orden superior. Entonces, tal vez, en lugar de simplemente devolver una variable, vamos a devolver una función. Y tomaremos ese valor original y haz algo con eso. Sí, esta podría ser una función independiente, pero nuevamente, solo estamos demostrando funcionalidad aquí. Entonces, cuando llamo a esta función, obtendré otra función. Entonces, ¿cómo hacemos que funcione? Bueno, voy a decir que no lo pienses demasiado. Estamos acostumbrados a funciones que devuelven una variable. y simplemente almacenamos esos datos en algún lugar. Bueno, esta es una función eso va a devolver otra función la idea es que podemos hacer algo con él. Digamos, por ejemplo, Haremos dos formas diferentes de llamarlo aquí. Hay señales de cambio y el argumento de dirección según sea necesario. Así que voy a almacenar la función que se devuelve. en forMomAndDad y en forTheBooks. Entonces, a partir de ahora, realmente no tengo nada en absoluto. donde sucede la magia es cuando tomo esas variables y le paso lo que necesita. Entonces esta es la función que devuelve esa función interna, aviso tiene un valor original param. Eso es lo que estoy pasando en este momento. Ahora fíjense aquí, mi dirección es positiva para mamá y papá déjelo en el, para TheBooks. No es que estemos haciendo algo deshonesto pero queremos que mamá y papá piensen que lo estamos haciendo bien. ¿Qué hay sobre eso? Así que probemos esta función como valor de retorno. Mamá y papá ven 500, Contabilidad ve lo real. No mientas a tu cuenta, no es una buena idea. Y revisemos aquí e ingresaremos algo, aquí vamos. Y sabemos que el anterior también funcionó. Entonces tenemos una función que toma un valor función que devuelve otra función que terminamos llamando en algún momento posterior. Entonces, otra cosa que podemos hacer es usar funciones de Javascript que ya están ahí fuera que son de orden superior y el filtro es uno de esos. Lo que voy a hacer es escribir una letra o letras aquí. Y encontraremos cuál de las opciones en el cuadro que realmente coincide con allí. Así que configuremos esto primero y solo tomaré cada una de mis opciones en la caja y voy a crear la matriz de una ciudad y luego empuja todo el texto de eso en el conjunto de la ciudad que veremos más adelante. Ese va a ser el lugar donde escribimos la letra o letras y luego nuestra función de filtro se verá así. Así que esto es solo un filtro y es de orden superior. porque toma una función como argumento. En este caso, es una función anónima. Estamos mirando esa palabra Realmente no necesito la consola que se registra allí pero veremos si el personaje coincide, porque si obtenemos un valor mayor que cero, entonces sabemos que ese personaje fue encontrado en esa cuerda en alguna parte y luego lo mostraremos en la página. Así que solo mostramos cuántas coincidencias hubo y adjuntarlo a la página. Lo importante de este es que estoy usando un filtro. Es una función de orden superior porque toma esa función como argumento. Entonces digamos que tal la letra a que parece aparecer en bastantes de estos. Ahí vamos, tenemos ocho partidos. ¿Qué tal "en" como frase? Solo una coincidencia. Prueba ese, de nuevo, solo el que hay. Entonces tienes algunas funciones que puede utilizar para trabajar con matrices, filtro, siendo uno de ellos que revisaremos cada miembro de una matriz y dada una determinada función, decirle si es parte de esa función booleana que pediste mirar primero. También podemos hacer Reducir que es otra función de orden superior y voy a tener las opciones de nuevo. Con este que voy a hacer es tomar todas las longitudes de cada una de las opciones en el cuadro y Reducir, toma una función que me devuelve un resultado. Entonces está reduciendo esa matriz a un valor y puedes hacer lo que quieras allí. Voy a pasar en total y actual. Y esto solo va a ser una suma corriente eso me va a dar la longitud de todos los personajes del cuadro. De nuevo, Reduce toma una función como argumento. El segundo es el predeterminado cuando se inicia. Entonces debería poder sumar todos estos juntos y parece que tal vez tengo demasiados aparatos. Así que arreglemos eso. Aquí vamos. El total de caracteres y todos los elementos de opción son 78. Puedes contarlos tú mismo y ver pero creo que funciona. Entonces, en esta lección, miramos una introducción al uso de funciones de orden superior en JavaScript. Y gracias por vernos. En nuestra próxima lección, hablaremos sobre las funciones de JavaScript. que se denominan iteradores y generadores.