1
00:00:01,400 --> 00:00:03,840
Déjame ahora mostrarte algunas trampas

2
00:00:03,840 --> 00:00:07,550
de la palabra clave this relacionada con funciones regulares

3
00:00:07,550 --> 00:00:09,460
y funciones de flecha.

4
00:00:09,460 --> 00:00:13,330
De esta manera podemos aprender cuándo debemos usar y evitar

5
00:00:13,330 --> 00:00:14,163
cada uno de ellos.

6
00:00:15,660 --> 00:00:19,260
Y para empezar, recuperemos el objeto Jonas.

7
00:00:19,260 --> 00:00:20,463
desde antes,

8
00:00:24,400 --> 00:00:26,913
y también agregaré una propiedad de nombre.

9
00:00:32,240 --> 00:00:36,750
Muy bien, y ahora agreguemos un segundo método aquí,

10
00:00:36,750 --> 00:00:39,490
pero esta vez usando una función de flecha.

11
00:00:39,490 --> 00:00:43,320
Así que haremos un método de saludo muy simple.

12
00:00:43,320 --> 00:00:45,980
Y entonces una función de flecha aquí,

13
00:00:45,980 --> 00:00:47,900
que simplemente inicia sesión en la consola

14
00:00:49,240 --> 00:00:52,700
Oye, y luego el nombre.

15
00:00:52,700 --> 00:00:57,370
Así que vamos a tomar este nombre del objeto.

16
00:00:57,370 --> 00:01:00,890
Así que este nombre de punto,

17
00:01:00,890 --> 00:01:03,633
o al menos, eso es lo que creemos que estamos haciendo.

18
00:01:05,410 --> 00:01:08,180
Así que ahora déjame mostrarte lo que sucede,

19
00:01:08,180 --> 00:01:12,700
como llamo jonas.saludar.

20
00:01:12,700 --> 00:01:16,610
Y tal vez también puedas anticiparlo con base en el conocimiento

21
00:01:16,610 --> 00:01:19,440
que ya tienes fuera de estas palabras clave

22
00:01:19,440 --> 00:01:21,780
cuando se usa en una función de flecha.

23
00:01:21,780 --> 00:01:24,460
Así que vamos a ver cuál es el resultado aquí.

24
00:01:24,460 --> 00:01:27,800
Y obtenemos, Hey indefinido.

25
00:01:27,800 --> 00:01:32,450
Entonces ese no es Hey Jonas, como podríamos haber esperado.

26
00:01:32,450 --> 00:01:35,560
Y la razón es exactamente la que mencioné.

27
00:01:35,560 --> 00:01:36,810
en la última conferencia,

28
00:01:36,810 --> 00:01:39,510
cuál es el hecho de que una función de flecha

29
00:01:39,510 --> 00:01:42,340
no obtiene su propia esta palabra clave,

30
00:01:42,340 --> 00:01:46,060
simplemente usará la palabra clave this de su entorno.

31
00:01:46,060 --> 00:01:49,760
Entonces, en otras palabras, sus padres son esta palabra clave,

32
00:01:49,760 --> 00:01:53,130
y el ámbito principal de este método de saludo

33
00:01:53,130 --> 00:01:56,203
es el alcance global. ¿Bueno?

34
00:01:57,140 --> 00:02:02,140
Solo tenga en cuenta aquí que esto en realidad no es un bloque de código.

35
00:02:02,280 --> 00:02:06,470
Podrías pensar que, como este tipo de bloque aquí,

36
00:02:06,470 --> 00:02:10,360
debería crear su propio alcance, pero no lo hace.

37
00:02:10,360 --> 00:02:14,080
Así que esto no es un bloque de código. Es un objeto literal.

38
00:02:14,080 --> 00:02:19,070
Así que es solo una forma en que literalmente definimos los objetos. ¿Bueno?

39
00:02:19,070 --> 00:02:23,090
Así que todo esto aquí todavía está en el ámbito global.

40
00:02:23,090 --> 00:02:26,690
Y por lo tanto, eso incluye este método de saludo.

41
00:02:26,690 --> 00:02:28,200
Está en el ámbito global,

42
00:02:28,200 --> 00:02:31,430
y por lo tanto, la función de flecha aquí,

43
00:02:31,430 --> 00:02:34,180
que no tiene su propia palabra clave this,

44
00:02:34,180 --> 00:02:37,490
utilizará la palabra clave this del ámbito global.

45
00:02:37,490 --> 00:02:41,407
Y recuerda que ese es el objeto ventana. ¿Bien?

46
00:02:43,440 --> 00:02:48,440
Y entonces este primer nombre de punto también está indefinido.

47
00:02:49,430 --> 00:02:52,570
Y creo que esto es en realidad algo

48
00:02:52,570 --> 00:02:54,390
que no hemos visto antes.

49
00:02:54,390 --> 00:02:57,790
Entonces, cuando intentamos acceder a una propiedad que no existe

50
00:02:57,790 --> 00:03:01,290
en un determinado objeto, no obtenemos un error,

51
00:03:01,290 --> 00:03:03,120
pero simplemente indefinido.

52
00:03:03,120 --> 00:03:05,190
Y eso es lo que está pasando aquí.

53
00:03:05,190 --> 00:03:07,020
Es por eso que nos quedamos indefinidos,

54
00:03:07,020 --> 00:03:09,783
porque este es el objeto ventana,

55
00:03:10,700 --> 00:03:14,800
así como vimos antes, y luego en el objeto ventana,

56
00:03:14,800 --> 00:03:18,503
no hay nombre de pila, por lo que nos quedamos indefinidos. ¿Bueno?

57
00:03:21,190 --> 00:03:24,600
Y, de hecho, este comportamiento puede volverse bastante peligroso,

58
00:03:24,600 --> 00:03:28,030
en caso de que usemos var, para declarar variables.

59
00:03:28,030 --> 00:03:30,880
Porque recuerda de una conferencia anterior,

60
00:03:30,880 --> 00:03:35,290
que las variables declaradas con var, en realidad crean propiedades

61
00:03:35,290 --> 00:03:37,030
en el objeto global.

62
00:03:37,030 --> 00:03:39,323
Así que imaginemos que tenemos esto.

63
00:03:40,760 --> 00:03:45,633
Entonces var primer nombre es igual a Matilda.

64
00:03:47,980 --> 00:03:51,560
Y ahora, mientras ejecutamos la función de saludo,

65
00:03:51,560 --> 00:03:55,310
dirá, Hey Matilda, ¿de acuerdo?

66
00:03:55,310 --> 00:03:57,240
Entonces, ¿por qué es eso?

67
00:03:57,240 --> 00:04:01,180
De nuevo, es porque dentro de esta función aquí,

68
00:04:01,180 --> 00:04:03,830
la esta palabra clave es ventana.

69
00:04:03,830 --> 00:04:07,483
Y, de hecho, déjame imprimir eso aquí en la consola también,

70
00:04:08,710 --> 00:04:12,633
solo para que realmente podamos ver que aquí está sucediendo. Bueno.

71
00:04:15,495 --> 00:04:19,578
De nuevo, ventana es esta palabra clave dentro

72
00:04:19,578 --> 00:04:24,350
de esta función de flecha, aunque esa función de flecha

73
00:04:24,350 --> 00:04:27,470
fue llamado por el objeto Jonas.

74
00:04:27,470 --> 00:04:29,810
Pero esa regla no se aplica aquí,

75
00:04:29,810 --> 00:04:32,910
porque de nuevo, es una función de flecha.

76
00:04:32,910 --> 00:04:36,930
Entonces, si echamos un vistazo a este objeto de ventana ahora,

77
00:04:36,930 --> 00:04:41,560
y aquí, cerca de F, por nombre,

78
00:04:41,560 --> 00:04:44,860
usted ve aquí, que de hecho tiene una propiedad

79
00:04:44,860 --> 00:04:48,240
llamado primer nombre con el valor de Matilda.

80
00:04:48,240 --> 00:04:52,490
Y de nuevo, eso es porque si declaramos variables con var,

81
00:04:52,490 --> 00:04:56,530
que crea este tipo de propiedades en el objeto global.

82
00:04:56,530 --> 00:04:59,190
Y por lo tanto, este primer nombre de punto,

83
00:04:59,190 --> 00:05:04,190
que se traduce como punto de ventana, el primer nombre es entonces Matilda.

84
00:05:04,630 --> 00:05:08,180
Y es por eso que tenemos a Hey Matilda aquí.

85
00:05:08,180 --> 00:05:12,830
Esa es otra razón más para no usar var.

86
00:05:12,830 --> 00:05:17,310
Así que ves que hay una lista bastante larga contra var.

87
00:05:17,310 --> 00:05:19,570
Entonces, a partir de este ejemplo, la gran conclusión

88
00:05:19,570 --> 00:05:22,070
es que como mejor práctica,

89
00:05:22,070 --> 00:05:26,920
nunca debes usar una función de flecha como método.

90
00:05:26,920 --> 00:05:30,690
Y en mi opinión, eso es cierto incluso si ni siquiera estás usando

91
00:05:30,690 --> 00:05:33,740
la palabra clave this en un método particular.

92
00:05:33,740 --> 00:05:36,720
Porque si tienes esta regla de nunca usar una flecha

93
00:05:36,720 --> 00:05:40,460
funcionar como un método, entonces nunca tendrás que pensar en

94
00:05:40,460 --> 00:05:42,820
qué tipo de función debe usar.

95
00:05:42,820 --> 00:05:46,040
Siempre usará una expresión de función normal,

96
00:05:46,040 --> 00:05:49,590
y así evitarás este tipo de errores

97
00:05:49,590 --> 00:05:51,210
de pasar

98
00:05:51,210 --> 00:05:54,270
Así que este error que vimos aquí con Hey Matilda

99
00:05:54,270 --> 00:05:57,563
es fácil de prevenir simplemente no usando var.

100
00:05:58,610 --> 00:06:02,200
Pero incluso entonces, Hey undefined sigue siendo un dólar.

101
00:06:02,200 --> 00:06:03,760
Todavía no es correcto.

102
00:06:03,760 --> 00:06:05,960
Y eso se habría evitado fácilmente.

103
00:06:05,960 --> 00:06:10,960
simplemente usando una función regular. ¿Bien?

104
00:06:11,040 --> 00:06:16,040
Si tuviéramos esto, entonces por supuesto ahora este objeto Jonas,

105
00:06:16,580 --> 00:06:18,240
que está llamando a la función

106
00:06:18,240 --> 00:06:22,630
sería entonces la palabra clave this. ¿Bien?

107
00:06:22,630 --> 00:06:25,840
Así que ves el primer nombre Jonas y luego Hey Jonas.

108
00:06:25,840 --> 00:06:28,980
Porque ahora este método en realidad tiene su propio

109
00:06:28,980 --> 00:06:29,813
esta palabra clave.

110
00:06:30,700 --> 00:06:31,883
Pero volvamos a ponerlo.

111
00:06:33,870 --> 00:06:37,870
Y, está bien. Excelente.

112
00:06:37,870 --> 00:06:42,510
Y ahora, un ejemplo final de una trampa de esta palabra clave

113
00:06:42,510 --> 00:06:46,210
es cuando tenemos una función dentro de un método.

114
00:06:46,210 --> 00:06:49,300
Y eso es algo bastante común que sucede.

115
00:06:49,300 --> 00:06:53,930
Y ahora echemos un vistazo a un ejemplo de eso.

116
00:06:53,930 --> 00:06:56,793
Así que vamos a crear otro objeto Jonas aquí.

117
00:06:57,840 --> 00:06:59,570
O, en realidad, no.

118
00:06:59,570 --> 00:07:02,670
En realidad, solo usemos este objeto aquí

119
00:07:02,670 --> 00:07:04,100
que ya tenemos.

120
00:07:04,100 --> 00:07:07,730
Y mejoremos este método calcAge.

121
00:07:07,730 --> 00:07:10,890
Entonces, lo que quiero aquí es una función.

122
00:07:10,890 --> 00:07:15,360
eso básicamente regresará si la persona es millennial.

123
00:07:15,360 --> 00:07:17,730
Tan fácil,

124
00:07:17,730 --> 00:07:22,653
vamos a crear una función isMillennial aquí.

125
00:07:28,190 --> 00:07:31,890
Y simplemente iniciemos sesión en la consola,

126
00:07:31,890 --> 00:07:36,890
si este punto año es mayor igual a 1981,

127
00:07:38,800 --> 00:07:41,180
y esa es la misma regla que usamos antes,

128
00:07:41,180 --> 00:07:46,133
por lo que el año de nacimiento debe permanecer entre 1981 y 1996.

129
00:07:48,920 --> 00:07:52,240
Por debajo de 1996.

130
00:07:52,240 --> 00:07:56,430
Y luego llamemos también a esa función aquí.

131
00:07:56,430 --> 00:07:59,780
Así se llamará Millennial

132
00:07:59,780 --> 00:08:01,713
como llamamos a la función calcAge.

133
00:08:02,660 --> 00:08:05,150
Así que también hagamos eso.

134
00:08:05,150 --> 00:08:07,440
Así que Jonas dot calcAge

135
00:08:09,180 --> 00:08:12,450
Entonces llamamos a este método aquí, el método calcAge,

136
00:08:12,450 --> 00:08:16,730
que es un método regular, por lo que no es una función de flecha.

137
00:08:16,730 --> 00:08:19,540
Y por lo tanto, la palabra clave esta aquí

138
00:08:19,540 --> 00:08:21,620
debería ser el objeto Jonas.

139
00:08:21,620 --> 00:08:26,350
Pero luego aquí, tenemos una función regular, así que esta,

140
00:08:26,350 --> 00:08:29,580
y aquí estamos entonces llamándolo de nuevo.

141
00:08:29,580 --> 00:08:33,310
Ahora, dentro de esta función, estamos usando la palabra clave this.

142
00:08:33,310 --> 00:08:36,773
Y ahora veamos qué sucede cuando recargamos la página.

143
00:08:38,210 --> 00:08:42,780
Y no podemos leer la propiedad año de indefinido

144
00:08:42,780 --> 00:08:45,350
en la línea 138.

145
00:08:45,350 --> 00:08:47,400
Así que eso es justo aquí.

146
00:08:47,400 --> 00:08:50,520
Entonces, lo que esto significa es que la palabra clave this

147
00:08:50,520 --> 00:08:52,130
debe ser indefinido.

148
00:08:52,130 --> 00:08:54,000
Eso es lo que dice aquí.

149
00:08:54,000 --> 00:08:56,033
Así que registrémoslo también,

150
00:08:57,500 --> 00:09:02,500
y aquí, podemos deshacernos de este ahora, está bien.

151
00:09:02,560 --> 00:09:06,580
Y, de hecho, esta palabra clave aquí no está definida.

152
00:09:06,580 --> 00:09:08,620
Entonces, ¿por qué es eso?

153
00:09:08,620 --> 00:09:11,860
Bueno, si pensamos en esto, entonces esto aquí

154
00:09:11,860 --> 00:09:15,410
es realmente solo una llamada de función regular, ¿no es así?

155
00:09:15,410 --> 00:09:17,310
Es una llamada de función regular,

156
00:09:17,310 --> 00:09:20,960
aunque suceda dentro de un método.

157
00:09:20,960 --> 00:09:24,620
Y la regla dice que dentro de una llamada de función regular,

158
00:09:24,620 --> 00:09:29,260
lo cual claramente es, que esta palabra clave debe ser indefinida.

159
00:09:29,260 --> 00:09:33,120
Y por lo tanto, no está definido aquí.

160
00:09:33,120 --> 00:09:37,300
Así que esto es como si esta función estuviera fuera

161
00:09:37,300 --> 00:09:38,550
de este método.

162
00:09:38,550 --> 00:09:40,630
Entonces, si copiamos esta función aquí,

163
00:09:40,630 --> 00:09:43,013
obtendríamos exactamente el mismo resultado.

164
00:09:43,870 --> 00:09:48,450
Ahora algunas personas consideran que esto es un error en JavaScript

165
00:09:48,450 --> 00:09:51,060
pero en mi opinión, no lo es realmente.

166
00:09:51,060 --> 00:09:53,700
Así es como funciona esta palabra clave.

167
00:09:53,700 --> 00:09:57,200
Es una regla clara que una llamada de función regular

168
00:09:57,200 --> 00:09:59,860
tiene esta palabra clave configurada como indefinida.

169
00:09:59,860 --> 00:10:02,820
Y eso es exactamente lo que está sucediendo aquí.

170
00:10:02,820 --> 00:10:06,350
Ahora hay dos soluciones a este problema.

171
00:10:06,350 --> 00:10:09,513
La primera solución es usar una variable adicional.

172
00:10:09,513 --> 00:10:12,143
que solemos llamar yo.

173
00:10:13,300 --> 00:10:17,510
Así que fuera de la función, digamos self

174
00:10:17,510 --> 00:10:20,710
y luego lo establecemos en esto.

175
00:10:20,710 --> 00:10:23,200
Porque aquí seguimos afuera

176
00:10:23,200 --> 00:10:25,960
de esta función es Millennial.

177
00:10:25,960 --> 00:10:29,210
Y aquí, todavía tenemos acceso a esta palabra clave

178
00:10:29,210 --> 00:10:31,630
puesto a Jonas. ¿Bien?

179
00:10:31,630 --> 00:10:35,473
Entonces aquí, podemos usar simplemente self.

180
00:10:37,800 --> 00:10:39,520
Y hagámoslo justo aquí.

181
00:10:39,520 --> 00:10:42,320
Y aquí voy a duplicar esta línea

182
00:10:44,410 --> 00:10:47,203
para que podamos conservar el original.

183
00:10:49,680 --> 00:10:51,930
Y ahora usemos self aquí.

184
00:10:51,930 --> 00:10:54,430
Y así, a través de la cadena de alcance,

185
00:10:54,430 --> 00:10:57,920
este yo será igual a esto.

186
00:10:57,920 --> 00:11:00,200
Así que aquí se hace referencia a sí mismo,

187
00:11:00,200 --> 00:11:02,580
pero no está, por supuesto, en el alcance.

188
00:11:02,580 --> 00:11:05,130
Y así, JavaScript asciende en la cadena de alcance,

189
00:11:05,130 --> 00:11:08,240
en el ámbito principal, que es calcAge.

190
00:11:08,240 --> 00:11:13,240
Así que aquí es donde se define el yo, y se define así.

191
00:11:13,673 --> 00:11:14,837
Así que en cuanto a esta palabra clave.

192
00:11:14,837 --> 00:11:17,810
Y entonces esta es una manera en la que podemos preservar

193
00:11:17,810 --> 00:11:18,793
la esta palabra clave.

194
00:11:19,930 --> 00:11:24,930
Esto también se puede llamar deuda, para que también puedas ver.

195
00:11:25,920 --> 00:11:29,590
Y mientras recargamos, ahora, esto realmente funciona.

196
00:11:29,590 --> 00:11:32,430
Así que ahora obtenemos el valor de verdadero.

197
00:11:32,430 --> 00:11:36,170
Así que esta era una especie de solución anterior a ES6,

198
00:11:36,170 --> 00:11:38,970
pero aún puede encontrar esta solución

199
00:11:38,970 --> 00:11:40,940
en algunas bases de código más antiguas.

200
00:11:40,940 --> 00:11:44,950
Sin embargo, ahora en ES6 tenemos una versión más moderna.

201
00:11:44,950 --> 00:11:46,490
y mejor solución.

202
00:11:46,490 --> 00:11:50,693
Y esa solución es usar una función de flecha. Está bien.

203
00:11:52,780 --> 00:11:55,563
Así que en realidad copiemos todo esto,

204
00:11:56,500 --> 00:11:59,993
porque quiero conservar ambas versiones aquí.

205
00:12:01,860 --> 00:12:04,233
Y ahora solo comentaré esto primero.

206
00:12:05,700 --> 00:12:07,113
Digamos la solución uno,

207
00:12:09,500 --> 00:12:11,310
pero ahora aquí tenemos la solución dos,

208
00:12:11,310 --> 00:12:15,083
que no necesita esta variable adicional.

209
00:12:17,980 --> 00:12:21,020
Bien, entonces deshagámonos de esto.

210
00:12:22,040 --> 00:12:26,010
traer esto de vuelta y aquí esto de nuevo.

211
00:12:26,010 --> 00:12:28,830
Y ahora, de nuevo, la solución al problema.

212
00:12:28,830 --> 00:12:32,890
que vimos antes es que ahora podemos usar una función de flecha.

213
00:12:32,890 --> 00:12:35,940
Y eso va a funcionar porque la función de flecha

214
00:12:35,940 --> 00:12:40,940
no tiene su propia palabra clave this. ¿Bien?

215
00:12:40,940 --> 00:12:44,440
Así que recordemos de nuevo, que cuando simplemente llamamos a esto,

216
00:12:44,440 --> 00:12:47,890
obtenemos que esta palabra clave no está definida.

217
00:12:47,890 --> 00:12:50,020
Y eso es porque una función regular

218
00:12:50,020 --> 00:12:52,260
obtiene su propia esta palabra clave.

219
00:12:52,260 --> 00:12:54,340
Pero la función de flecha no lo hará,

220
00:12:54,340 --> 00:12:57,810
simplemente utilizará esta palabra clave de su ámbito principal.

221
00:12:57,810 --> 00:13:01,990
Y en este caso, ese será el método calcAge,

222
00:13:01,990 --> 00:13:06,510
y aquí la palabra clave this es Jonas, por lo que el objeto Jonas.

223
00:13:06,510 --> 00:13:09,600
Y por lo tanto aquí en una función de flecha,

224
00:13:09,600 --> 00:13:11,453
esa también sería la palabra clave this.

225
00:13:12,810 --> 00:13:15,433
Y luego va a funcionar como se esperaba,

226
00:13:16,470 --> 00:13:18,650
y de hecho, ahora es verdad.

227
00:13:18,650 --> 00:13:21,470
Y nuevamente, esto funcionó porque esta función de flecha

228
00:13:21,470 --> 00:13:25,030
utiliza la palabra clave this de su ámbito principal.

229
00:13:25,030 --> 00:13:27,260
Y en este caso, en el ámbito principal,

230
00:13:27,260 --> 00:13:29,730
la palabra clave es Jonas.

231
00:13:29,730 --> 00:13:33,750
Entonces, básicamente, una función de flecha hereda esta palabra clave

232
00:13:33,750 --> 00:13:35,710
del ámbito principal.

233
00:13:35,710 --> 00:13:39,780
Y eso es exactamente lo que necesitamos aquí. Está bien.

234
00:13:39,780 --> 00:13:42,650
Y aquí, ves que es bastante importante

235
00:13:42,650 --> 00:13:46,810
saber exactamente cómo cada uno de los diferentes tipos de funciones

236
00:13:46,810 --> 00:13:49,750
trabajar en lo que respecta a la palabra clave this.

237
00:13:49,750 --> 00:13:52,720
Porque entonces realmente puedes usarlos de acuerdo

238
00:13:52,720 --> 00:13:55,340
a sus necesidades específicas.

239
00:13:55,340 --> 00:13:58,760
Excelente. Así que espero que especialmente esta solución aquí

240
00:13:58,760 --> 00:14:00,420
tenía sentido para ti.

241
00:14:00,420 --> 00:14:03,730
Y que cuando lo necesites en algún momento de tu viaje,

242
00:14:03,730 --> 00:14:08,060
o en tu trabajo, puedes recordar que esta es una herramienta muy útil

243
00:14:08,060 --> 00:14:10,363
caso de uso de la función flecha.

244
00:14:11,530 --> 00:14:13,560
Ahora, solo para terminar esta conferencia,

245
00:14:13,560 --> 00:14:17,980
También quiero referirme rápidamente a las palabras clave de los argumentos.

246
00:14:17,980 --> 00:14:21,310
Tal vez me recuerdes hablando de eso,

247
00:14:21,310 --> 00:14:23,630
también en una conferencia anterior.

248
00:14:23,630 --> 00:14:26,500
Entonces, en el video sobre el contexto de ejecución,

249
00:14:26,500 --> 00:14:27,870
y la pila de llamadas,

250
00:14:27,870 --> 00:14:30,850
aprendimos que las funciones también obtienen acceso

251
00:14:30,850 --> 00:14:33,010
a una palabra clave de argumentos.

252
00:14:33,010 --> 00:14:37,300
Entonces, no solo esta palabra clave, sino también una palabra clave de argumentos.

253
00:14:37,300 --> 00:14:41,420
Ahora, al igual que la palabra clave this, la palabra clave arguments

254
00:14:41,420 --> 00:14:44,720
sólo está disponible en las funciones regulares.

255
00:14:44,720 --> 00:14:49,103
Así que vamos a crear otra función aquí.

256
00:14:50,200 --> 00:14:51,713
Así que primero una expresión.

257
00:14:52,760 --> 00:14:55,610
De nuevo, básicamente esas son nuestras funciones para agregar

258
00:14:55,610 --> 00:14:58,363
y en realidad déjame agarrarlos desde aquí.

259
00:14:59,460 --> 00:15:02,023
Creo que los definí en algún lugar aquí arriba.

260
00:15:03,280 --> 00:15:04,113
Sí.

261
00:15:04,990 --> 00:15:06,460
Así que no hay necesidad de reescribir

262
00:15:07,690 --> 00:15:09,483
el mismo código una y otra vez.

263
00:15:10,650 --> 00:15:12,223
Solo agrega un comentario aquí,

264
00:15:13,220 --> 00:15:15,633
palabra clave argumentos.

265
00:15:18,170 --> 00:15:23,170
Y luego déjame también imprimir en la consola, esa palabra clave.

266
00:15:25,470 --> 00:15:27,923
Así que permítanme llamar rápidamente a esta función aquí ahora.

267
00:15:29,080 --> 00:15:31,930
Así que dos y cinco

268
00:15:31,930 --> 00:15:35,180
así que solo para que veamos la palabra clave arguments.

269
00:15:35,180 --> 00:15:36,810
Y así aquí abajo está

270
00:15:36,810 --> 00:15:40,370
y ves que obtenemos básicamente una matriz

271
00:15:40,370 --> 00:15:42,800
con dos y cinco.

272
00:15:42,800 --> 00:15:47,120
Y esos son exactamente los dos parámetros que pasamos.

273
00:15:47,120 --> 00:15:49,690
Y esto puede ser útil cuando necesitamos una función.

274
00:15:49,690 --> 00:15:53,443
para aceptar más parámetros de los que realmente especificamos.

275
00:15:54,740 --> 00:15:57,053
Así que esto es algo que nunca hicimos antes.

276
00:15:59,720 --> 00:16:02,660
Entonces, hasta este punto, solo hemos especificado

277
00:16:02,660 --> 00:16:07,080
exactamente los argumentos que tenemos aquí en la lista

278
00:16:07,080 --> 00:16:08,480
de parámetros

279
00:16:08,480 --> 00:16:11,670
Así que tenemos dos parámetros y dos argumentos.

280
00:16:11,670 --> 00:16:16,280
Pero es completamente legal agregar más argumentos.

281
00:16:16,280 --> 00:16:19,120
No tendrán nombre, así que no los nombramos,

282
00:16:19,120 --> 00:16:20,280
pero existen.

283
00:16:20,280 --> 00:16:25,280
Y podemos verlos aquí en la matriz de argumentos. Está bien.

284
00:16:25,850 --> 00:16:28,310
Así que aparecen aquí, y podemos usarlos

285
00:16:28,310 --> 00:16:30,330
por lo tanto en las funciones.

286
00:16:30,330 --> 00:16:32,290
Por ejemplo, podríamos usar un bucle,

287
00:16:32,290 --> 00:16:34,670
y luego recorrer esta matriz

288
00:16:34,670 --> 00:16:37,450
y sumar todos los números.

289
00:16:37,450 --> 00:16:40,740
Pero ahora mi punto aquí es que la función de flecha

290
00:16:40,740 --> 00:16:43,030
no obtiene esta palabra clave.

291
00:16:43,030 --> 00:16:45,360
Eso también es registrarlo en la consola aquí.

292
00:16:45,360 --> 00:16:50,350
así que pongamos esto aquí entre llaves,

293
00:16:50,350 --> 00:16:53,410
entonces recuerda cuando tenemos más de una línea de código,

294
00:16:53,410 --> 00:16:55,363
necesitamos volver explícitamente.

295
00:16:58,030 --> 00:17:02,950
Entonces, intentemos echar un vistazo a la palabra clave arguments

296
00:17:02,950 --> 00:17:04,690
aquí también.

297
00:17:04,690 --> 00:17:09,690
Entonces agregue la flecha dos, cinco, ocho, digamos,

298
00:17:09,950 --> 00:17:11,870
pero luego obtenemos un error.

299
00:17:11,870 --> 00:17:15,820
Entonces los argumentos no están definidos. Está bien.

300
00:17:15,820 --> 00:17:18,090
Así que esto fue simplemente para mostrarte

301
00:17:18,090 --> 00:17:20,930
que la palabra clave arguments existe,

302
00:17:20,930 --> 00:17:24,220
pero que sólo existe en funciones regulares.

303
00:17:24,220 --> 00:17:26,570
Así que en expresiones de función como esta,

304
00:17:26,570 --> 00:17:28,690
pero también en declaraciones de funciones,

305
00:17:28,690 --> 00:17:30,663
pero no en una función de flecha.

306
00:17:31,500 --> 00:17:35,020
Pero de todos modos, la palabra clave arguments no es tan importante

307
00:17:35,020 --> 00:17:37,210
en JavaScript moderno más,

308
00:17:37,210 --> 00:17:40,000
porque ahora tenemos una forma más moderna

309
00:17:40,000 --> 00:17:42,500
de tratar con múltiples parámetros.

310
00:17:42,500 --> 00:17:45,130
Pero aún así es importante que seas consciente

311
00:17:45,130 --> 00:17:49,250
que existen estas palabras clave de argumentos.

312
00:17:49,250 --> 00:17:52,280
Muy bien, y ahora con todas estas conferencias

313
00:17:52,280 --> 00:17:55,460
en funciones regulares y funciones de flecha,

314
00:17:55,460 --> 00:17:58,150
usted debe saber todas las diferencias entre ellos,

315
00:17:58,150 --> 00:18:01,683
y aún más importante, cuándo usar cada uno de ellos.