1
00:00:01,170 --> 00:00:04,430
Hagamos lo contrario de la última lección.

2
00:00:04,430 --> 00:00:07,943
y crear una función que devuelva una nueva función.

3
00:00:09,640 --> 00:00:14,163
Así que voy a escribir una función de saludo muy simple aquí,

4
00:00:15,740 --> 00:00:19,800
porque esto es realmente solo para demostrar este punto aquí

5
00:00:19,800 --> 00:00:21,833
tan fácilmente como sea posible.

6
00:00:23,120 --> 00:00:27,590
Así que aquí podemos pasar un saludo como hola

7
00:00:27,590 --> 00:00:30,890
o hola o algo así.

8
00:00:30,890 --> 00:00:33,018
Y luego toda esta función hará

9
00:00:33,018 --> 00:00:35,920
es devolver una nueva función.

10
00:00:35,920 --> 00:00:36,950
Así que como siempre,

11
00:00:36,950 --> 00:00:40,973
escribimos return y luego simplemente un nuevo valor de función.

12
00:00:43,010 --> 00:00:45,020
Y esta nueva función que volvemos

13
00:00:45,020 --> 00:00:48,266
también tendrá un parámetro por lo que será capaz

14
00:00:48,266 --> 00:00:50,743
para recibir argumentos. ¿Bien?

15
00:00:51,770 --> 00:00:54,033
Y entonces, ¿qué hará esta función aquí?

16
00:00:55,290 --> 00:00:57,540
es que simplemente mirará a la consola,

17
00:00:57,540 --> 00:01:01,170
básicamente el saludo, y luego el nombre de la persona

18
00:01:01,170 --> 00:01:03,273
que pasamos a esta función.

19
00:01:04,940 --> 00:01:06,310
Así que escribamos esto

20
00:01:06,310 --> 00:01:08,973
y tendrá sentido cuando veamos esto en acción.

21
00:01:10,210 --> 00:01:12,853
Estoy seguro de que se ve un poco raro en este momento.

22
00:01:13,890 --> 00:01:16,483
Y ahora usemos la función de saludo.

23
00:01:18,180 --> 00:01:20,260
Así que digamos saludar

24
00:01:21,350 --> 00:01:25,450
con hey y entonces 'hey' es el saludo aquí.

25
00:01:25,450 --> 00:01:29,940
Ahora, ¿cuál será el resultado de esta llamada de función?

26
00:01:29,940 --> 00:01:34,290
Bueno, va a ser esta función, ¿verdad?

27
00:01:34,290 --> 00:01:39,080
Entonces, almacenemos el resultado de esta llamada de función,

28
00:01:39,080 --> 00:01:41,913
que será como acabamos de decir, esa función,

29
00:01:43,420 --> 00:01:45,943
Voy a llamar a este saludador. Oye.

30
00:01:49,590 --> 00:01:54,590
Así que este valor aquí ahora es en realidad ahora una función.

31
00:01:54,710 --> 00:01:58,680
Bueno. Y esencialmente es esta función.

32
00:01:58,680 --> 00:02:01,410
Entonces, lo que esto significa es que ahora podemos llamar

33
00:02:01,410 --> 00:02:05,323
esta función de saludo como si fuera cualquier otra función

34
00:02:05,323 --> 00:02:07,953
que nos definimos a nosotros mismos.

35
00:02:07,953 --> 00:02:10,536
Así que digamos saludadorHola Jonah's

36
00:02:12,200 --> 00:02:14,350
y llamémoslo en otro momento.

37
00:02:14,350 --> 00:02:18,401
Saludador Hola Steven

38
00:02:18,401 --> 00:02:20,540
y ahora voy a ejecutarlo.

39
00:02:20,540 --> 00:02:24,610
Y de hecho tenemos Hey Jonas y Hey Steven.

40
00:02:24,610 --> 00:02:28,133
Y esto funcionó de nuevo porque este saludadorOye,

41
00:02:28,133 --> 00:02:30,630
es esencialmente esto.

42
00:02:30,630 --> 00:02:34,020
Y así lo llamamos ahora con el argumento de Jonas.

43
00:02:34,020 --> 00:02:36,650
Y entonces este nombre aquí es, por supuesto,

44
00:02:36,650 --> 00:02:38,810
este nombre que especificamos aquí.

45
00:02:38,810 --> 00:02:41,013
Ahora, el saludo todavía viene de

46
00:02:41,013 --> 00:02:43,592
esta función de saludo aquí.

47
00:02:43,592 --> 00:02:46,483
Y en caso de que te estés preguntando por qué eso realmente funciona,

48
00:02:46,483 --> 00:02:50,760
es por algo llamado cierre.

49
00:02:50,760 --> 00:02:54,100
Ahora los cierres son un tema muy complejo y difícil.

50
00:02:54,100 --> 00:02:57,146
para entender el mecanismo que es parte de JavaScript.

51
00:02:57,146 --> 00:03:00,320
Y entonces hay dos videos separados al final.

52
00:03:00,320 --> 00:03:02,800
de la sección sobre cierres.

53
00:03:02,800 --> 00:03:04,300
Así que los cierres es uno de los

54
00:03:04,300 --> 00:03:07,870
temas más incomprendidos en JavaScript.

55
00:03:07,870 --> 00:03:09,553
Así que no te preocupes por eso Ahora,

56
00:03:10,501 --> 00:03:13,430
lo que importa aqui es que nuestra primera funcion sea un saludo

57
00:03:13,430 --> 00:03:17,182
devolvió una nueva función que almacenamos en esta variable.

58
00:03:17,182 --> 00:03:20,753
Y entonces esta variable ahora es solo una función que podemos llamar

59
00:03:20,753 --> 00:03:25,240
como lo hicimos aquí nuevamente, cante la sintaxis de paréntesis.

60
00:03:25,240 --> 00:03:28,493
Y, por supuesto, también podríamos hacerlo todo de una vez.

61
00:03:29,490 --> 00:03:33,642
Entonces podemos volver a llamar y saludar. digamos hola ahora.

62
00:03:33,642 --> 00:03:38,130
Y así de nuevo este año es ahora una función.

63
00:03:38,130 --> 00:03:39,932
Bien, si esto es una función,

64
00:03:39,932 --> 00:03:44,860
podemos llamarlo inmediatamente, ¿verdad? Y entonces llamamos así,

65
00:03:44,860 --> 00:03:48,410
y luego pasamos a nombre que es el argumento

66
00:03:48,410 --> 00:03:52,750
de esta función aquí, ¿verdad? Y así, aunque

67
00:03:52,750 --> 00:03:56,090
esto se ve un poco raro, va a funcionar.

68
00:03:56,090 --> 00:04:00,580
Y ahora tenemos hola Jonas. Muy bien.

69
00:04:00,580 --> 00:04:04,000
Y ahora este ejemplo puede parecer un poco raro

70
00:04:04,000 --> 00:04:07,270
e innecesario para ti ¿Cuál es el punto?

71
00:04:07,270 --> 00:04:10,400
de tener funciones que devuelven otras funciones?

72
00:04:10,400 --> 00:04:12,620
Bueno, esto en realidad se volverá extremadamente

73
00:04:12,620 --> 00:04:15,070
útil en algunas situaciones.

74
00:04:15,070 --> 00:04:17,650
Y especialmente si estamos usando una muy importante

75
00:04:17,650 --> 00:04:20,960
paradigma de programación llamado programación funcional.

76
00:04:20,960 --> 00:04:23,510
Y creo que lo he mencionado algunas veces a lo largo

77
00:04:23,510 --> 00:04:25,360
el curso y en realidad vamos a

78
00:04:25,360 --> 00:04:29,520
ver la programación funcional al final del curso.

79
00:04:29,520 --> 00:04:32,150
Tal vez no cuando publiqué el curso por primera vez,

80
00:04:32,150 --> 00:04:34,610
pero ciertamente algún punto después.

81
00:04:34,610 --> 00:04:37,031
De todos modos, asegúrese de entender esto aquí

82
00:04:37,031 --> 00:04:40,160
y especialmente esta línea de código.

83
00:04:40,160 --> 00:04:42,300
Y si entiendes esto, entonces estoy seguro

84
00:04:42,300 --> 00:04:45,123
entendiste todo lo que pasó aquí.

85
00:04:46,030 --> 00:04:48,730
Ahora, solo como un pequeño desafío para terminar aquí,

86
00:04:48,730 --> 00:04:51,399
intenta reescribir esta función aquí

87
00:04:51,399 --> 00:04:53,940
usando solo funciones de flecha.

88
00:04:53,940 --> 00:04:57,220
Y créanme, eso se verá un poco confuso,

89
00:04:57,220 --> 00:04:59,060
pero estoy seguro de que puedes hacerlo.

90
00:04:59,060 --> 00:05:01,770
Así que tómate un tiempo y trata de reescribir

91
00:05:01,770 --> 00:05:04,560
esa función de saludo usando funciones de flecha.

92
00:05:04,560 --> 00:05:06,110
Y te veo aquí en un minuto.

93
00:05:08,860 --> 00:05:10,320
Bueno,

94
00:05:10,320 --> 00:05:11,190
entonces vamos

95
00:05:12,940 --> 00:05:14,170
mira como se hace

96
00:05:16,790 --> 00:05:18,220
así que saluda

97
00:05:18,220 --> 00:05:19,733
Solo lo llamaré R,

98
00:05:21,770 --> 00:05:24,090
así que éste toma de nuevo,

99
00:05:24,090 --> 00:05:28,130
saludo como argumento y devuelve una nueva función.

100
00:05:28,130 --> 00:05:30,810
Entonces esto significa que solo tiene una línea de código,

101
00:05:30,810 --> 00:05:33,030
que devuelve algo.

102
00:05:33,030 --> 00:05:34,700
Así que todo lo que necesitamos es esta flecha.

103
00:05:34,700 --> 00:05:37,010
Y entonces ni siquiera necesitamos las llaves

104
00:05:37,010 --> 00:05:40,050
y no necesitamos devolver una declaración.

105
00:05:40,050 --> 00:05:42,490
Entonces, ¿qué vamos a devolver de aquí?

106
00:05:42,490 --> 00:05:43,970
Una nueva función.

107
00:05:43,970 --> 00:05:48,140
De nuevo, una función de flecha y otra flecha aquí,

108
00:05:48,140 --> 00:05:49,370
y luego simplemente esto

109
00:05:53,430 --> 00:05:55,800
vamos a darle una caja fuerte y probar

110
00:05:57,110 --> 00:05:57,970
Así que saluda

111
00:05:58,920 --> 00:05:59,753
R

112
00:06:00,710 --> 00:06:04,860
y usemos hola, esta vez y sí,

113
00:06:04,860 --> 00:06:06,133
recibimos hola Jonas,

114
00:06:07,700 --> 00:06:08,800
¿bueno?

115
00:06:08,800 --> 00:06:10,645
Así que este es un camino aún más corto

116
00:06:10,645 --> 00:06:13,850
de escribir la misma función pero en mi opinión,

117
00:06:13,850 --> 00:06:16,540
en realidad es mucho más confuso.

118
00:06:16,540 --> 00:06:18,250
Y es por eso que lo escribí usando

119
00:06:18,250 --> 00:06:20,440
esta forma más tradicional aquí.

120
00:06:20,440 --> 00:06:21,273
Pero al final,

121
00:06:21,273 --> 00:06:24,350
también es simplemente una función de flecha

122
00:06:24,350 --> 00:06:26,800
devolviendo otra función de flecha.

123
00:06:26,800 --> 00:06:28,855
Y esa es la esencia de este video,

124
00:06:28,855 --> 00:06:30,569
que espero te haya quedado claro.

125
00:06:30,569 --> 00:06:34,163
Y si es así, entonces pasemos al siguiente.