1
00:00:01,520 --> 00:00:04,693
Entonces, sepamos, aprendamos sobre el método bind.

2
00:00:06,310 --> 00:00:08,730
Y al igual que el método de llamada,

3
00:00:08,730 --> 00:00:12,470
bind también nos permite configurar manualmente estas palabras clave

4
00:00:12,470 --> 00:00:14,610
para cualquier llamada de función.

5
00:00:14,610 --> 00:00:16,570
Ahora, la diferencia es que se unen

6
00:00:16,570 --> 00:00:19,180
no llama inmediatamente a la función.

7
00:00:19,180 --> 00:00:22,080
En su lugar, devuelve una nueva función.

8
00:00:22,080 --> 00:00:24,790
donde está enlazada esta palabra clave.

9
00:00:24,790 --> 00:00:29,670
Por lo tanto, se establece en cualquier valor que pasemos a bind.

10
00:00:29,670 --> 00:00:32,200
Así que continuemos con nuestro ejemplo de aerolínea

11
00:00:32,200 --> 00:00:34,390
de la conferencia anterior aquí.

12
00:00:34,390 --> 00:00:37,770
Y ahora digamos que necesitamos usar la función de libro

13
00:00:37,770 --> 00:00:41,120
para Eurowings todo el tiempo.

14
00:00:41,120 --> 00:00:45,332
Entonces, recuerda que tenemos este objeto Eurowings

15
00:00:45,332 --> 00:00:47,749
y luego usamos un book.call,

16
00:00:48,884 --> 00:00:50,860
para usar la función de libro

17
00:00:50,860 --> 00:00:54,020
con Eurowings ajustado a esta palabra clave.

18
00:00:54,020 --> 00:00:56,283
Así que eso es lo que hicimos en la última lección.

19
00:00:57,820 --> 00:01:00,253
Así que déjame copiar este código aquí.

20
00:01:02,030 --> 00:01:03,800
Pero ahora, como dije,

21
00:01:03,800 --> 00:01:08,350
podemos usar el método bind para crear una nueva función

22
00:01:08,350 --> 00:01:12,993
con esta palabra clave también establecida en Eurowings, ¿de acuerdo?

23
00:01:14,930 --> 00:01:19,000
Entonces, de nuevo, esto no llamará a la función de libro.

24
00:01:19,000 --> 00:01:21,850
En su lugar, devolverá una nueva función.

25
00:01:21,850 --> 00:01:25,743
donde esta palabra clave siempre se establecerá en Eurowings.

26
00:01:26,690 --> 00:01:31,674
Entonces, vamos a crear una nueva función aquí llamada bookEW,

27
00:01:31,674 --> 00:01:33,424
donde es solo un código de Eurowings.

28
00:01:35,940 --> 00:01:37,300
¿Está bien?

29
00:01:37,300 --> 00:01:39,723
Y ahora vamos a usar esta función.

30
00:01:41,030 --> 00:01:46,030
Entonces bookEW, Steven Williams

31
00:01:48,420 --> 00:01:50,743
y aquí nos falta el número de vuelo.

32
00:01:51,870 --> 00:01:53,203
Entonces 23.

33
00:01:54,638 --> 00:01:56,750
Y como ven, esto ahora se ve

34
00:01:56,750 --> 00:01:59,740
como la llamada de función de libro normal de nuevo.

35
00:01:59,740 --> 00:02:01,890
Y eso es porque esta función aquí

36
00:02:01,890 --> 00:02:05,960
ya tiene esta palabra clave escrita en piedra básicamente.

37
00:02:05,960 --> 00:02:09,250
Y aquí, por supuesto, ya no necesitamos especificar

38
00:02:09,250 --> 00:02:11,130
a estas palabras clave de nuevo.

39
00:02:11,130 --> 00:02:15,250
Así que la firma aquí, así que el nombre de los parámetros

40
00:02:15,250 --> 00:02:18,920
vuelve a ser simplemente el número de vuelo

41
00:02:18,920 --> 00:02:22,650
y el nombre del pasajero, ¿de acuerdo?

42
00:02:22,650 --> 00:02:25,700
Y ahora de nuevo, vemos que Steven reservó un asiento

43
00:02:25,700 --> 00:02:28,810
en el vuelo de Eurowings EW23.

44
00:02:28,810 --> 00:02:31,540
Y así funcionó perfectamente.

45
00:02:31,540 --> 00:02:34,543
Por supuesto, también veamos el objeto de nuevo.

46
00:02:37,580 --> 00:02:42,090
Entonces, con todas las reservas y, de hecho, aquí está Steven Williams.

47
00:02:42,090 --> 00:02:43,903
en el vuelo que acabamos de reservar.

48
00:02:45,060 --> 00:02:48,520
Genial, así que esto es muy, muy útil.

49
00:02:48,520 --> 00:02:51,570
Y ahora, por supuesto, podríamos seguir adelante y hacer lo mismo.

50
00:02:51,570 --> 00:02:53,800
para todas las aerolíneas.

51
00:02:53,800 --> 00:02:57,740
Por lo tanto, crear una función de reserva para cada una de las aerolíneas.

52
00:02:57,740 --> 00:02:59,790
Y esto entonces lo hace un poco más fácil.

53
00:02:59,790 --> 00:03:02,295
para reservar un vuelo para cada una de las aerolíneas,

54
00:03:02,295 --> 00:03:04,723
si tenemos que hacerlo varias veces.

55
00:03:05,733 --> 00:03:09,970
Entonces, en lugar de tener que usar una llamada todo el tiempo,

56
00:03:09,970 --> 00:03:11,903
solo podemos hacer bind una vez.

57
00:03:14,960 --> 00:03:18,170
Entonces, definir la palabra clave del disco una vez así

58
00:03:18,170 --> 00:03:22,903
y de ahí en adelante, siempre podemos usar estas funciones.

59
00:03:27,417 --> 00:03:32,417
.bind y este, suizo, ¿de acuerdo?

60
00:03:33,360 --> 00:03:35,290
Ahora, no voy a usarlos todos aquí ahora

61
00:03:35,290 --> 00:03:37,693
porque ya sabemos cómo funciona eso,

62
00:03:38,820 --> 00:03:40,330
¿está bien?

63
00:03:40,330 --> 00:03:41,580
Entonces esto es genial,

64
00:03:41,580 --> 00:03:44,700
pero en realidad podemos llevar esto aún más lejos.

65
00:03:44,700 --> 00:03:48,890
Entonces, en el método de llamada, podemos pasar múltiples argumentos aquí

66
00:03:48,890 --> 00:03:51,550
además de estas palabras clave, ¿verdad?

67
00:03:51,550 --> 00:03:54,460
Y así, en el método bind, en realidad podemos hacer lo mismo.

68
00:03:54,460 --> 00:03:56,100
Y luego todos estos argumentos

69
00:03:56,100 --> 00:03:59,090
también será básicamente grabado en piedra.

70
00:03:59,090 --> 00:04:00,970
Así se definirán

71
00:04:00,970 --> 00:04:03,380
y la función siempre será llamada

72
00:04:03,380 --> 00:04:05,850
con estos mismos argumentos.

73
00:04:05,850 --> 00:04:08,900
Por ejemplo, podríamos usar bind para crear una función

74
00:04:08,900 --> 00:04:13,063
para una aerolínea específica y un número de vuelo específico.

75
00:04:14,960 --> 00:04:19,960
Así que digamos, bookEW, tal como lo hicimos aquí,

76
00:04:21,120 --> 00:04:25,370
pero luego muy específico, solo para el vuelo 23.

77
00:04:25,370 --> 00:04:29,000
Entonces eso sería book.bind

78
00:04:30,050 --> 00:04:33,630
y luego, por supuesto, tenemos que volver a definir Eurowings,

79
00:04:33,630 --> 00:04:36,980
pero entonces podemos empezar a encontrar la lista de argumentos

80
00:04:37,980 --> 00:04:40,020
o la lista de parámetros

81
00:04:40,020 --> 00:04:44,403
y establecer el primero en 23, ¿de acuerdo?

82
00:04:47,180 --> 00:04:49,523
Entonces, si miramos nuestra función de vinculación ahora,

83
00:04:50,620 --> 00:04:54,470
recuerda que necesita el número de vuelo y el nombre.

84
00:04:54,470 --> 00:04:57,310
Pero ahora en nuestra función bookEW23,

85
00:04:57,310 --> 00:05:01,350
es como si este primer argumento ya estuviera establecido.

86
00:05:01,350 --> 00:05:04,603
Y así, todas las funciones restantes ahora solo necesitan el nombre.

87
00:05:06,380 --> 00:05:07,680
Entonces esta función,

88
00:05:07,680 --> 00:05:10,020
este ahora solo necesita el nombre,

89
00:05:10,020 --> 00:05:13,107
porque el número ya estaba preestablecido aquí

90
00:05:13,107 --> 00:05:14,593
en el método de enlace.

91
00:05:15,820 --> 00:05:17,053
Entonces, veamos.

92
00:05:18,790 --> 00:05:22,353
Entonces, nuestro recién creado libro de funciones EW23,

93
00:05:23,671 --> 00:05:25,963
y ahora reservemos un vuelo para mí.

94
00:05:32,430 --> 00:05:34,710
Y reservemos un vuelo para Martha,

95
00:05:34,710 --> 00:05:36,253
digamos, Cooper.

96
00:05:37,480 --> 00:05:42,480
Y, sí, echemos un vistazo a nuestra producción aquí.

97
00:05:42,510 --> 00:05:44,263
Y estos son los dos.

98
00:05:45,240 --> 00:05:50,240
Y, de hecho, ambos son para el vuelo EW23 de Eurowings,

99
00:05:50,330 --> 00:05:51,769
¿está bien?

100
00:05:51,769 --> 00:05:54,210
Y eso es exactamente lo que esperábamos.

101
00:05:54,210 --> 00:05:58,780
Nuevamente, porque preestablecimos ese 23 aquí mismo.

102
00:05:58,780 --> 00:05:59,810
Si preestablecemos esto aquí

103
00:05:59,810 --> 00:06:01,970
a uno, dos, tres, cuatro, cinco,

104
00:06:01,970 --> 00:06:05,470
luego, por supuesto, estos dos nuevos vuelos aquí

105
00:06:05,470 --> 00:06:08,793
estaría reservado en ese número de vuelo, ¿de acuerdo?

106
00:06:11,000 --> 00:06:14,340
Así que esto nos permite grabar en piedra, ciertos argumentos.

107
00:06:14,340 --> 00:06:17,170
Y entonces esta función, la función resultante,

108
00:06:17,170 --> 00:06:19,400
entonces se vuelve aún más simple.

109
00:06:19,400 --> 00:06:22,010
Así que ahora mismo todo lo que necesitamos para pasar

110
00:06:22,010 --> 00:06:25,130
es el nombre del pasajero, ¿verdad?

111
00:06:25,130 --> 00:06:28,930
Y luego todo lo demás básicamente sucede automáticamente.

112
00:06:28,930 --> 00:06:30,580
Y llevando esto aún más lejos,

113
00:06:30,580 --> 00:06:34,040
incluso podríamos definir, tener el nombre del pasajero aquí

114
00:06:34,040 --> 00:06:35,450
por ejemplo, así.

115
00:06:35,450 --> 00:06:39,770
Y luego esta función siempre reservaría un vuelo para Jonas

116
00:06:39,770 --> 00:06:41,370
en el vuelo 23.

117
00:06:41,370 --> 00:06:45,557
Pero eso probablemente lo llevaría un poco demasiado lejos ahora.

118
00:06:47,110 --> 00:06:51,780
Y borré el 23 aquí,

119
00:06:51,780 --> 00:06:53,280
por supuesto, yo no quería eso.

120
00:06:54,690 --> 00:06:56,290
Así que esto es correcto.

121
00:06:56,290 --> 00:06:58,600
Y por cierto, lo que hicimos aquí,

122
00:06:58,600 --> 00:07:03,070
entonces, básicamente especificando partes del argumento de antemano,

123
00:07:03,070 --> 00:07:07,700
es en realidad un patrón común llamado aplicación parcial.

124
00:07:07,700 --> 00:07:10,010
Así que esencialmente, aplicación parcial

125
00:07:10,010 --> 00:07:12,620
significa que una parte de los argumentos

126
00:07:12,620 --> 00:07:16,350
de la función original ya están aplicadas,

127
00:07:16,350 --> 00:07:18,920
lo que significa, ya establecido.

128
00:07:18,920 --> 00:07:23,920
Y eso es exactamente lo que es la función bookEW23, ¿verdad?

129
00:07:24,890 --> 00:07:26,690
Es esencialmente la función del libro.

130
00:07:26,690 --> 00:07:30,210
pero con 23 ya predefinidos.

131
00:07:30,210 --> 00:07:31,290
Excelente.

132
00:07:31,290 --> 00:07:35,400
Entonces, espero que este sea un buen ejemplo para que lo entiendas.

133
00:07:35,400 --> 00:07:39,110
la llamada a los métodos apply y bind,

134
00:07:39,110 --> 00:07:41,410
pero también hay otras situaciones

135
00:07:41,410 --> 00:07:43,780
en el que podemos usar el método bind

136
00:07:43,780 --> 00:07:45,760
y donde es muy útil.

137
00:07:45,760 --> 00:07:49,580
Y un ejemplo de eso es cuando usamos objetos juntos

138
00:07:49,580 --> 00:07:50,963
con oyentes de eventos.

139
00:07:51,930 --> 00:07:53,630
Así que escribamos eso aquí en realidad,

140
00:07:54,900 --> 00:07:58,683
con oyentes de eventos.

141
00:08:00,210 --> 00:08:02,180
Y ahora este botón aquí

142
00:08:02,180 --> 00:08:03,920
finalmente entrará en juego.

143
00:08:03,920 --> 00:08:06,510
Y tal vez te has estado preguntando sobre eso.

144
00:08:06,510 --> 00:08:08,890
Pero comencemos agregando una nueva propiedad.

145
00:08:08,890 --> 00:08:10,720
solo al objeto de Lufthansa

146
00:08:12,030 --> 00:08:15,500
y lo ponemos a 300.

147
00:08:15,500 --> 00:08:19,640
Lo que significa que esta empresa tiene 300 aviones.

148
00:08:19,640 --> 00:08:22,600
Y luego también agregamos un nuevo método.

149
00:08:22,600 --> 00:08:24,760
solo al objeto de Lufthansa,

150
00:08:24,760 --> 00:08:27,023
que es comprar un avión nuevo.

151
00:08:31,350 --> 00:08:32,183
Entonces funciona,

152
00:08:33,323 --> 00:08:37,347
y ahora lo que queremos hacer es this.planes++.

153
00:08:39,320 --> 00:08:41,990
Básicamente, queremos agregar un nuevo avión,

154
00:08:41,990 --> 00:08:43,990
cada vez que hacemos clic en este botón.

155
00:08:43,990 --> 00:08:46,783
Así que eventualmente eso es lo que querremos hacer.

156
00:08:47,890 --> 00:08:52,170
Y luego registremos this.planes en la consola.

157
00:08:52,170 --> 00:08:56,610
Y probablemente también deberíamos registrar estas palabras clave

158
00:08:56,610 --> 00:08:58,610
a la consola también.

159
00:08:58,610 --> 00:09:01,690
Y ahora vamos a adjuntar nuestro controlador de eventos

160
00:09:01,690 --> 00:09:03,310
a este elemento,

161
00:09:03,310 --> 00:09:06,890
vamos a inspeccionarlo aquí, ¿de acuerdo?

162
00:09:06,890 --> 00:09:08,763
Debería necesitar ir a elementos.

163
00:09:09,680 --> 00:09:12,250
Entonces, este es el botón aquí

164
00:09:12,250 --> 00:09:13,773
y tiene la clase, comprar.

165
00:09:15,270 --> 00:09:18,817
Entonces document.queryselector.buy,

166
00:09:20,940 --> 00:09:24,900
addEventListener para hacer clic.

167
00:09:24,900 --> 00:09:26,520
Y luego el segundo argumento,

168
00:09:26,520 --> 00:09:30,160
como ya sabes, es la función handler.

169
00:09:30,160 --> 00:09:33,430
Entonces addEventListener aquí está la función de orden superior

170
00:09:33,430 --> 00:09:35,700
que recibe una función de devolución de llamada.

171
00:09:35,700 --> 00:09:39,690
Y eso debería ser lufthansa.buyPlane, ¿de acuerdo?

172
00:09:44,620 --> 00:09:46,610
Entonces, esencialmente, esta función aquí

173
00:09:46,610 --> 00:09:48,480
es lo que queremos que suceda,

174
00:09:48,480 --> 00:09:51,520
que nuevamente toma el número actual de aviones

175
00:09:51,520 --> 00:09:53,723
y lo aumenta en uno.

176
00:09:55,740 --> 00:09:57,193
Así que hagamos eso.

177
00:09:58,610 --> 00:10:01,883
Y ahora, mientras hago clic en este botón, veamos qué sucede.

178
00:10:03,150 --> 00:10:05,683
Y no obtenemos un número aquí.

179
00:10:06,800 --> 00:10:10,000
Así que este .Planes ya no es un número.

180
00:10:10,000 --> 00:10:13,380
Y la razón de ello es que esta palabra clave

181
00:10:13,380 --> 00:10:17,090
es este elemento de botón, ¿de acuerdo?

182
00:10:17,090 --> 00:10:18,833
¿Y sabes por qué es eso?

183
00:10:19,870 --> 00:10:22,000
Bueno, en una de las conferencias teóricas,

184
00:10:22,000 --> 00:10:24,850
aprendimos que en una función de controlador de eventos,

185
00:10:24,850 --> 00:10:28,130
que esta palabra clave siempre apunta al elemento

186
00:10:28,130 --> 00:10:31,133
en el que se adjunta ese controlador.

187
00:10:32,170 --> 00:10:35,770
Entonces, esta es la función del controlador, ¿verdad?

188
00:10:35,770 --> 00:10:39,380
Y así se adjunta a este elemento,

189
00:10:39,380 --> 00:10:40,650
así que a este botón.

190
00:10:40,650 --> 00:10:43,530
Y por lo tanto, dentro de la función del controlador

191
00:10:43,530 --> 00:10:46,690
o el detector de eventos, en realidad no importa.

192
00:10:46,690 --> 00:10:48,443
Pero dentro de esta función,

193
00:10:48,443 --> 00:10:51,634
esta palabra clave apuntará al elemento del botón.

194
00:10:51,634 --> 00:10:56,090
Y es por eso que esta palabra clave aquí

195
00:10:56,090 --> 00:10:59,710
devuelve este botón, ¿de acuerdo?

196
00:10:59,710 --> 00:11:02,170
Así que aquí tienes otra prueba

197
00:11:02,170 --> 00:11:05,820
que esta palabra clave realmente se establece dinámicamente.

198
00:11:05,820 --> 00:11:10,820
Porque si simplemente llamamos a Lufthansa.buyPlane aquí,

199
00:11:12,173 --> 00:11:16,260
entonces, por supuesto, esta palabra clave sería Lufthansa,

200
00:11:16,260 --> 00:11:18,180
así que este objeto, ¿verdad?

201
00:11:18,180 --> 00:11:21,920
Porque ese es el objeto que llama a la función.

202
00:11:21,920 --> 00:11:24,500
Pero en este caso es, por supuesto,

203
00:11:24,500 --> 00:11:28,830
esta función de escucha de eventos llamando a esta función.

204
00:11:28,830 --> 00:11:31,180
Y por lo tanto, el propio botón

205
00:11:31,180 --> 00:11:35,050
entonces se convertirá en esta palabra clave, ¿de acuerdo?

206
00:11:35,050 --> 00:11:36,480
Aquí ahora vemos los resultados.

207
00:11:36,480 --> 00:11:38,393
de llamar a esta función aquí.

208
00:11:39,280 --> 00:11:42,210
Y ahora empezamos con 300

209
00:11:42,210 --> 00:11:45,093
y se incrementó tal como queríamos que fuera.

210
00:11:45,930 --> 00:11:48,000
Así que saquemos esto de aquí

211
00:11:48,000 --> 00:11:49,920
y volvamos a hacer clic aquí

212
00:11:49,920 --> 00:11:52,690
para ver el resultado que teníamos antes.

213
00:11:52,690 --> 00:11:53,873
Así que ese es este botón.

214
00:11:54,800 --> 00:11:57,810
Ahora, por supuesto, en esta función de controlador aquí,

215
00:11:57,810 --> 00:12:00,600
todavía necesitamos esta palabra clave para señalar

216
00:12:00,600 --> 00:12:03,860
al propio objeto de Lufthansa, ¿verdad?

217
00:12:03,860 --> 00:12:06,890
De lo contrario, esta lógica aquí no funcionará.

218
00:12:06,890 --> 00:12:10,470
Entonces, lo que esto significa es que necesitamos definir manualmente

219
00:12:10,470 --> 00:12:11,963
a esta palabra clave aquí.

220
00:12:12,800 --> 00:12:13,683
Así que aquí mismo.

221
00:12:15,110 --> 00:12:16,940
Ahora, ¿cómo debemos hacer eso?

222
00:12:16,940 --> 00:12:21,030
¿Deberíamos usar el método call o el método bind?

223
00:12:21,030 --> 00:12:23,690
Bueno, necesitamos pasar una función aquí.

224
00:12:23,690 --> 00:12:25,600
y no llamarlo.

225
00:12:25,600 --> 00:12:28,260
Y entonces ya sabemos que el método de llamada

226
00:12:28,260 --> 00:12:29,690
llama a la función.

227
00:12:29,690 --> 00:12:31,640
Y eso no es lo que necesitamos.

228
00:12:31,640 --> 00:12:34,190
Y por lo tanto, usamos bind.

229
00:12:34,190 --> 00:12:35,977
Porque ya sabemos que se unen

230
00:12:35,977 --> 00:12:38,840
va a devolver una nueva función.

231
00:12:38,840 --> 00:12:41,313
Entonces, esta palabra clave debería ser Lufthansa,

232
00:12:41,313 --> 00:12:45,830
y eso es exactamente lo que definimos, ¿de acuerdo?

233
00:12:45,830 --> 00:12:50,830
Y ahora, al hacer clic aquí, deberíamos ver el objeto Lufthansa

234
00:12:50,880 --> 00:12:52,870
siendo estas palabras clave.

235
00:12:52,870 --> 00:12:55,563
De hecho, y eso es ahora exactamente lo que tenemos aquí.

236
00:12:56,470 --> 00:12:58,690
Así que ese es el resultado de esta línea de código.

237
00:12:58,690 --> 00:13:02,150
Y de nuevo, esto ahora apunta a Lufthansa,

238
00:13:02,150 --> 00:13:06,360
porque eso es lo que le dijimos a JavaScript que hiciera aquí.

239
00:13:06,360 --> 00:13:08,360
Y así de hecho ahora el número de aviones

240
00:13:08,360 --> 00:13:13,360
va aumentando cada vez que hacemos clic en este botón.

241
00:13:13,460 --> 00:13:15,950
Genial, entonces tenemos nuestro problema resuelto.

242
00:13:15,950 --> 00:13:19,060
Y de hecho, haremos esto un par de veces más.

243
00:13:19,060 --> 00:13:20,620
A lo largo del curso.

244
00:13:20,620 --> 00:13:22,340
Así que este es uno importante.

245
00:13:22,340 --> 00:13:24,210
Y en general, el método bind

246
00:13:24,210 --> 00:13:28,332
es algo que realmente necesitas entender, ¿de acuerdo?

247
00:13:28,332 --> 00:13:30,439
Ahora, solo un ejemplo final aquí,

248
00:13:30,439 --> 00:13:34,900
que nuevamente se tratará de una aplicación parcial,

249
00:13:34,900 --> 00:13:38,573
porque este es otro gran caso de uso para el método bind.

250
00:13:41,240 --> 00:13:44,450
Y en este caso de aplicación parcial,

251
00:13:44,450 --> 00:13:48,510
muchas veces ni siquiera nos interesan estas palabras clave,

252
00:13:48,510 --> 00:13:50,961
pero todavía usamos bind para esto, ¿de acuerdo?

253
00:13:50,961 --> 00:13:53,860
Ahora, recuerda que la aplicación parcial

254
00:13:53,860 --> 00:13:58,060
significa que podemos preestablecer parámetros, ¿de acuerdo?

255
00:13:58,060 --> 00:14:00,910
Entonces, comencemos creando una función general.

256
00:14:00,910 --> 00:14:05,803
que añade un impuesto a algún valor.

257
00:14:07,510 --> 00:14:11,433
Entonces, comencemos con la tasa impositiva y luego el valor en sí.

258
00:14:14,040 --> 00:14:16,233
Y escribamos una función de flecha aquí.

259
00:14:17,520 --> 00:14:20,160
Y entonces esto funciona haciendo

260
00:14:20,160 --> 00:14:25,160
valor + valor * la tasa de impuestos, ¿verdad?

261
00:14:28,750 --> 00:14:32,180
Así que imagina que la tasa de impuestos sería del 10%

262
00:14:32,180 --> 00:14:34,427
y el valor 100.

263
00:14:34,427 --> 00:14:38,650
Entonces sumando el impuesto a 100 sería 110.

264
00:14:38,650 --> 00:14:42,550
Bueno, hagamos 200 para que quede un poco más claro.

265
00:14:42,550 --> 00:14:45,603
Y, por supuesto, necesitamos llamar a la función aquí misma,

266
00:14:47,930 --> 00:14:48,763
¿bueno?

267
00:14:48,763 --> 00:14:52,000
Entonces ahora el 10% de 200 es 20,

268
00:14:52,000 --> 00:14:57,000
y entonces los resultados deberían ser 220 y eso no funcionó.

269
00:14:57,454 --> 00:15:00,720
Y sí, eso es porque necesitamos definir esto aquí

270
00:15:00,720 --> 00:15:04,470
como un número decimal aquí, por supuesto.

271
00:15:04,470 --> 00:15:08,410
Entonces solo entonces esta tasa aquí puede tener sentido, ¿de acuerdo?

272
00:15:08,410 --> 00:15:10,713
Entonces 220 ahora.

273
00:15:11,840 --> 00:15:16,220
Esta es la función general para agregar impuestos.

274
00:15:16,220 --> 00:15:18,490
Pero ahora digamos que hay un impuesto

275
00:15:18,490 --> 00:15:19,980
que usamos todo el tiempo.

276
00:15:19,980 --> 00:15:23,763
Entonces, vamos a crear una función para eso.

277
00:15:24,657 --> 00:15:26,940
Entonces, por ejemplo, aquí en Portugal,

278
00:15:26,940 --> 00:15:31,893
el IVA, que es el impuesto al valor agregado, es del 23%.

279
00:15:32,810 --> 00:15:34,990
Y ahora podemos usar la función de vinculación

280
00:15:34,990 --> 00:15:39,990
en esta función y preestablecer la tasa siempre,

281
00:15:40,080 --> 00:15:43,470
para que siempre sea ese 23%.

282
00:15:43,470 --> 00:15:45,040
Y luego tenemos una función.

283
00:15:45,040 --> 00:15:46,930
que solo calcula el IVA

284
00:15:46,930 --> 00:15:49,163
por cualquier valor que le pasemos.

285
00:15:50,840 --> 00:15:54,780
Por lo tanto, addTax.bind

286
00:15:54,780 --> 00:15:56,920
y luego el primer argumento de bind

287
00:15:56,920 --> 00:15:59,370
son palabras clave, ¿recuerdas?

288
00:15:59,370 --> 00:16:01,160
Pero en este caso, no nos importa.

289
00:16:01,160 --> 00:16:02,930
sobre esta palabra clave en absoluto.

290
00:16:02,930 --> 00:16:05,210
Ni siquiera está aquí en la función.

291
00:16:05,210 --> 00:16:07,570
Y entonces, simplemente decimos, nulo.

292
00:16:07,570 --> 00:16:09,300
Podría ser cualquier otro valor

293
00:16:09,300 --> 00:16:11,440
porque nada va a pasar con eso,

294
00:16:11,440 --> 00:16:14,980
pero es una especie de estándar simplemente usar nulo.

295
00:16:14,980 --> 00:16:16,903
Y ahora podemos establecer la tasa aquí.

296
00:16:18,100 --> 00:16:20,850
Así que vamos a preestablecerlo al 23%,

297
00:16:20,850 --> 00:16:23,960
entonces 0.23, ¿de acuerdo?

298
00:16:23,960 --> 00:16:28,260
Y así, esto establece el valor de la tasa aquí en piedra.

299
00:16:28,260 --> 00:16:29,810
Así que esencialmente, esto sería lo mismo

300
00:16:29,810 --> 00:16:31,000
como escribir...

301
00:16:33,200 --> 00:16:34,461
Vamos a pegarlo aquí.

302
00:16:34,461 --> 00:16:38,880
Así que esto debe ser, más el IVA es igual a,

303
00:16:38,880 --> 00:16:42,650
y la tasa está preestablecida en 0,23.

304
00:16:46,470 --> 00:16:49,480
Así que esto es esencialmente lo que nuestra función addVAT

305
00:16:49,480 --> 00:16:52,233
ahora parece, ¿de acuerdo?

306
00:16:53,240 --> 00:16:57,613
Entonces, porque ya hemos grabado 0.23 en piedra.

307
00:16:59,060 --> 00:17:01,583
Entonces, ahora podemos comenzar a usar eso.

308
00:17:03,990 --> 00:17:08,693
Entonces esto debería ser 123 y lo es.

309
00:17:10,020 --> 00:17:13,920
Podemos usar lo que queramos ahora como 23

310
00:17:14,770 --> 00:17:16,443
y así sucesivamente y así sucesivamente.

311
00:17:17,790 --> 00:17:19,283
Así que espero que esto tenga sentido.

312
00:17:20,290 --> 00:17:21,890
Cuando quieras hacerlo tú mismo,

313
00:17:21,890 --> 00:17:25,040
solo tenga en cuenta que el orden de los argumentos entonces

314
00:17:25,040 --> 00:17:26,210
es importante.

315
00:17:26,210 --> 00:17:28,540
Si desea preestablecer la tasa,

316
00:17:28,540 --> 00:17:31,650
entonces tiene que ser el primer argumento en esta función.

317
00:17:31,650 --> 00:17:36,650
De lo contrario, esto realmente no funcionará aquí, ¿de acuerdo?

318
00:17:37,320 --> 00:17:40,530
Ahora podría argumentar que lo que acabamos de hacer aquí

319
00:17:40,530 --> 00:17:44,370
se podría haber hecho fácilmente con los parámetros predeterminados.

320
00:17:44,370 --> 00:17:46,330
Pero esto es en realidad diferente,

321
00:17:46,330 --> 00:17:49,650
porque esto aquí está creando un nuevo,

322
00:17:49,650 --> 00:17:51,800
simplemente, función más específica

323
00:17:51,800 --> 00:17:53,860
basado en una función más general,

324
00:17:53,860 --> 00:17:56,420
que es la función addTax.

325
00:17:56,420 --> 00:17:58,390
Y por supuesto, el ejemplo aquí

326
00:17:58,390 --> 00:18:02,300
podría ser mucho más complejo también, ¿verdad?

327
00:18:02,300 --> 00:18:04,140
Así que esto realmente es diferente

328
00:18:04,140 --> 00:18:05,670
porque usando enlaces,

329
00:18:05,670 --> 00:18:08,970
en realidad, realmente nos da una nueva función.

330
00:18:08,970 --> 00:18:13,030
Entonces, es como si devolviéramos una nueva función específica

331
00:18:13,030 --> 00:18:15,760
de la función sumarImpuestos.

332
00:18:15,760 --> 00:18:19,130
Y en realidad ahora tengo un lindo reto para ti

333
00:18:19,130 --> 00:18:23,391
que es esencialmente reescribir todo este ejemplo aquí,

334
00:18:23,391 --> 00:18:26,060
pero usando la técnica de una función

335
00:18:26,060 --> 00:18:28,070
devolviendo otra función.

336
00:18:28,070 --> 00:18:30,120
Así que tenemos una conferencia sobre eso.

337
00:18:30,120 --> 00:18:32,820
y tal vez puedas regresar y echar un vistazo a eso.

338
00:18:32,820 --> 00:18:34,630
Y luego quiero que esencialmente,

339
00:18:34,630 --> 00:18:37,630
crear una función que pueda devolver una función

340
00:18:37,630 --> 00:18:40,560
que hará exactamente lo que hace este.

341
00:18:40,560 --> 00:18:43,220
Así que eso es probablemente realmente desafiante.

342
00:18:43,220 --> 00:18:46,700
Así que no te castigues si no puedes hacerlo.

343
00:18:46,700 --> 00:18:48,370
Sé que es un desafío,

344
00:18:48,370 --> 00:18:51,570
pero aún puedes intentar tomarte un minuto o dos

345
00:18:51,570 --> 00:18:54,510
y, sí, realmente inténtalo.

346
00:18:54,510 --> 00:18:55,443
Si no puedes hacerlo,

347
00:18:55,443 --> 00:18:58,900
entonces mira la solución en un minuto, ¿de acuerdo?

348
00:18:58,900 --> 00:19:00,640
Simplemente no uses bind, por supuesto,

349
00:19:00,640 --> 00:19:03,440
porque con eso ya tenemos la solución.

350
00:19:03,440 --> 00:19:05,860
Así que usa la técnica que te mostré antes.

351
00:19:05,860 --> 00:19:08,770
con la función de cuadrícula, ¿recuerdas?

352
00:19:08,770 --> 00:19:11,550
Y entonces aquí puedes hacer algo similar.

353
00:19:11,550 --> 00:19:13,973
Entonces, nos vemos en un segundo con la solución.

354
00:19:17,770 --> 00:19:18,970
Está bien.

355
00:19:18,970 --> 00:19:21,030
Espero que hayas probado eso.

356
00:19:21,030 --> 00:19:23,850
Y así es como lo habría hecho.

357
00:19:23,850 --> 00:19:26,840
Entonces, la primera función aquí,

358
00:19:26,840 --> 00:19:28,790
Lo llamaré addTaxRate.

359
00:19:31,987 --> 00:19:34,670
Y podría hacer esto con las funciones de flecha,

360
00:19:34,670 --> 00:19:37,030
pero entonces eso parece realmente confuso.

361
00:19:37,030 --> 00:19:39,433
Así que centrémonos en la funcionalidad aquí.

362
00:19:40,550 --> 00:19:43,870
Así que esta es la primera función que solo recibe la tasa.

363
00:19:43,870 --> 00:19:45,593
Tan similar a lo que hicimos aquí.

364
00:19:46,810 --> 00:19:51,193
Y luego lo que hace es devolver una nueva función.

365
00:19:52,477 --> 00:19:53,900
Y luego esta nueva función

366
00:19:53,900 --> 00:19:55,663
es el que toma el valor.

367
00:19:57,360 --> 00:20:00,740
Y luego regresará como la otra función,

368
00:20:00,740 --> 00:20:05,010
valor + valor * la tasa, ¿de acuerdo?

369
00:20:08,885 --> 00:20:11,000
Y ahora basado en este,

370
00:20:11,000 --> 00:20:14,623
podríamos crear addVAT2.

371
00:20:16,880 --> 00:20:18,900
Y así sería, addTaxRate

372
00:20:21,547 --> 00:20:23,163
y luego llamarlo con 0.23.

373
00:20:26,410 --> 00:20:28,640
Y luego hagamos lo mismo

374
00:20:28,640 --> 00:20:31,150
para ver si los resultados son los mismos.

375
00:20:31,150 --> 00:20:36,150
Entonces, VAT2, y dos, pruébalo y aquí tienes.

376
00:20:37,770 --> 00:20:39,600
Así que los resultados son los mismos.

377
00:20:39,600 --> 00:20:43,793
Y entonces este addVAT2 es la misma función que este.

378
00:20:45,030 --> 00:20:48,260
Para recapitular, creamos esta función,

379
00:20:48,260 --> 00:20:51,710
que luego devuelve este.

380
00:20:51,710 --> 00:20:55,130
Así que el primero es el que necesita la tasa,

381
00:20:55,130 --> 00:20:57,770
porque la tasa también es la que usamos

382
00:20:57,770 --> 00:21:02,400
para definir esta función addVAT aquí, ¿verdad?

383
00:21:02,400 --> 00:21:04,010
Y así la función resultante

384
00:21:04,010 --> 00:21:06,470
es entonces quien toma el valor.

385
00:21:06,470 --> 00:21:09,563
Y es por eso que también tenemos valor aquí en la función interna.

386
00:21:10,610 --> 00:21:13,334
Ahora bien, esta es sólo otra forma de hacer lo mismo

387
00:21:13,334 --> 00:21:17,210
y esto ya es algo bastante avanzado en realidad.

388
00:21:17,210 --> 00:21:19,500
Entonces, absolutamente no te enojes

389
00:21:19,500 --> 00:21:22,200
si no lo hiciste solo.

390
00:21:22,200 --> 00:21:23,950
Pero en fin, en el siguiente video.

391
00:21:23,950 --> 00:21:26,000
tenemos el desafío de codificación número uno

392
00:21:26,000 --> 00:21:27,940
de esta sección que viene.

393
00:21:27,940 --> 00:21:30,703
Así que espero verte allí muy pronto.