Hagamos lo contrario de la última lección.
y crear una función que devuelva una nueva función.
Así que voy a escribir una función de saludo muy simple aquí,
porque esto es realmente solo para demostrar este punto aquí
tan fácilmente como sea posible.
Así que aquí podemos pasar un saludo como hola
o hola o algo así.
Y luego toda esta función hará
es devolver una nueva función.
Así que como siempre,
escribimos return y luego simplemente un nuevo valor de función.
Y esta nueva función que volvemos
también tendrá un parámetro por lo que será capaz
para recibir argumentos. ¿Bien?
Y entonces, ¿qué hará esta función aquí?
es que simplemente mirará a la consola,
básicamente el saludo, y luego el nombre de la persona
que pasamos a esta función.
Así que escribamos esto
y tendrá sentido cuando veamos esto en acción.
Estoy seguro de que se ve un poco raro en este momento.
Y ahora usemos la función de saludo.
Así que digamos saludar
con hey y entonces 'hey' es el saludo aquí.
Ahora, ¿cuál será el resultado de esta llamada de función?
Bueno, va a ser esta función, ¿verdad?
Entonces, almacenemos el resultado de esta llamada de función,
que será como acabamos de decir, esa función,
Voy a llamar a este saludador. Oye.
Así que este valor aquí ahora es en realidad ahora una función.
Bueno. Y esencialmente es esta función.
Entonces, lo que esto significa es que ahora podemos llamar
esta función de saludo como si fuera cualquier otra función
que nos definimos a nosotros mismos.
Así que digamos saludadorHola Jonah's
y llamémoslo en otro momento.
Saludador Hola Steven
y ahora voy a ejecutarlo.
Y de hecho tenemos Hey Jonas y Hey Steven.
Y esto funcionó de nuevo porque este saludadorOye,
es esencialmente esto.
Y así lo llamamos ahora con el argumento de Jonas.
Y entonces este nombre aquí es, por supuesto,
este nombre que especificamos aquí.
Ahora, el saludo todavía viene de
esta función de saludo aquí.
Y en caso de que te estés preguntando por qué eso realmente funciona,
es por algo llamado cierre.
Ahora los cierres son un tema muy complejo y difícil.
para entender el mecanismo que es parte de JavaScript.
Y entonces hay dos videos separados al final.
de la sección sobre cierres.
Así que los cierres es uno de los
temas más incomprendidos en JavaScript.
Así que no te preocupes por eso Ahora,
lo que importa aqui es que nuestra primera funcion sea un saludo
devolvió una nueva función que almacenamos en esta variable.
Y entonces esta variable ahora es solo una función que podemos llamar
como lo hicimos aquí nuevamente, cante la sintaxis de paréntesis.
Y, por supuesto, también podríamos hacerlo todo de una vez.
Entonces podemos volver a llamar y saludar. digamos hola ahora.
Y así de nuevo este año es ahora una función.
Bien, si esto es una función,
podemos llamarlo inmediatamente, ¿verdad? Y entonces llamamos así,
y luego pasamos a nombre que es el argumento
de esta función aquí, ¿verdad? Y así, aunque
esto se ve un poco raro, va a funcionar.
Y ahora tenemos hola Jonas. Muy bien.
Y ahora este ejemplo puede parecer un poco raro
e innecesario para ti ¿Cuál es el punto?
de tener funciones que devuelven otras funciones?
Bueno, esto en realidad se volverá extremadamente
útil en algunas situaciones.
Y especialmente si estamos usando una muy importante
paradigma de programación llamado programación funcional.
Y creo que lo he mencionado algunas veces a lo largo
el curso y en realidad vamos a
ver la programación funcional al final del curso.
Tal vez no cuando publiqué el curso por primera vez,
pero ciertamente algún punto después.
De todos modos, asegúrese de entender esto aquí
y especialmente esta línea de código.
Y si entiendes esto, entonces estoy seguro
entendiste todo lo que pasó aquí.
Ahora, solo como un pequeño desafío para terminar aquí,
intenta reescribir esta función aquí
usando solo funciones de flecha.
Y créanme, eso se verá un poco confuso,
pero estoy seguro de que puedes hacerlo.
Así que tómate un tiempo y trata de reescribir
esa función de saludo usando funciones de flecha.
Y te veo aquí en un minuto.
Bueno,
entonces vamos
mira como se hace
así que saluda
Solo lo llamaré R,
así que éste toma de nuevo,
saludo como argumento y devuelve una nueva función.
Entonces esto significa que solo tiene una línea de código,
que devuelve algo.
Así que todo lo que necesitamos es esta flecha.
Y entonces ni siquiera necesitamos las llaves
y no necesitamos devolver una declaración.
Entonces, ¿qué vamos a devolver de aquí?
Una nueva función.
De nuevo, una función de flecha y otra flecha aquí,
y luego simplemente esto
vamos a darle una caja fuerte y probar
Así que saluda
R
y usemos hola, esta vez y sí,
recibimos hola Jonas,
¿bueno?
Así que este es un camino aún más corto
de escribir la misma función pero en mi opinión,
en realidad es mucho más confuso.
Y es por eso que lo escribí usando
esta forma más tradicional aquí.
Pero al final,
también es simplemente una función de flecha
devolviendo otra función de flecha.
Y esa es la esencia de este video,
que espero te haya quedado claro.
Y si es así, entonces pasemos al siguiente.