Ahora veamos las reglas.
de cómo se definen las palabras clave del disco en acción.
Y empecemos echando un vistazo
en las palabras clave del disco fuera de cualquier función.
Así que justo afuera de aquí en el ámbito global.
Y así obtenemos que la palabra clave del disco
en el ámbito global es simplemente el objeto ventana.
Así que ese es el objeto global que acabamos de ver antes.
Recuerda, y ahora hagamos lo mismo
pero dentro de solo una llamada de función regular
entonces vamos a usar a un viejo amigo llamado H aquí.
Así que echemos un vistazo a la consola, solo el resultado habitual.
por lo que en realidad estamos haciendo algo aquí.
Pero entonces lo que realmente nos interesa
en está echando un vistazo a esto, esta palabra clave.
Así que llamemos ahora a esta función.
Y entonces
vamos a ver.
Y ahora el resultado de echar un vistazo tan
en el registro, la palabra clave del disco no está definida.
Bueno.
Y lo que eso significa es que
la percepción es simplemente una función normal.
Llame aquí.
La palabra clave del disco no estará definida
y eso es porque estamos en modo estricto.
Recordar
que en modo descuidado, sería también el objeto global.
Entonces, en este caso, el objeto ventana
pero ya sabes que siempre debes usar el modo estricto.
Y entonces, en una llamada de función regular
como esta D este teclado simplemente señalará
a indefinido y con una llamada de función regular
Simplemente me refiero a una llamada de disfunción
sin que la función se adjunte a ningún objeto.
Así sin tener dueño
por así decirlo, pero ahora vamos a ver qué pasa.
Si esta función aquí fuera una función de flecha.
Así que copiemos esto.
Así que cog H
tanto aquí como aquí
flecha,
y llamemos a este con un valor diferente.
Y ahora piensa en las reglas que aprendimos
en el último vídeo.
Entonces, ¿cuál crees que será la palabra clave del disco?
si la disfunción es una función de flecha
y en realidad todavía tenemos que hacer eso.
Así que año de nacimiento.
Y ahora es una función de flecha legítima.
Y así, una vez más, ¿qué te parece
que estas palabras clave ahora serán
pensar mucho en ello?
Y luego vamos a comprobar
y entonces
es ventana
Así que eso es un poco raro tal vez
¿bien?
Entonces, ¿por qué es eso?
¿Por qué la palabra clave del disco no está definida?
en esta función, pero ventana en esta
¿función? Bueno, es porque el
la función de flecha no obtiene su propia palabra clave de disco.
Entonces, en cambio, la función de flecha simplemente usa el léxico
esta palabra clave, lo que significa que utiliza la palabra clave disco
de su función padre o del ámbito de sus padres.
Por asi decirlo
y en este caso, ¿cuál es el léxico, esta palabra clave?
Entonces, ¿cuáles son las palabras clave del disco en el ámbito de los padres?
de esta función?
Bueno, es ventana porque ventana son las palabras clave del disco aquí
en el ámbito mundial.
Así que aquí mismo.
Bueno. Es por eso que comencé mostrándoles este aquí.
Entonces, en este caso, esta, esta palabra clave aquí simplemente señalará
a la palabra clave del disco en el ámbito global.
Y por lo tanto señalará
a la ventana y como aquí en esta función normal
que en realidad obtiene sus propias palabras clave de disco
es simplemente como indefinido aquí
pero es propia esta palabra clave mientras esta aquí
en la función de flecha en realidad no son las palabras clave del disco
de esta función aquí.
Bueno. Es simplemente la palabra clave del disco del alcance del padre.
Y ese es el objeto ventana.
En este caso,
en el proximo video
veremos algunas implicaciones más reales del hecho
que la función de flecha no obtiene su propia palabra clave de disco.
Ahora, el siguiente
intentemos usar la palabra clave disc dentro de un método.
Así que vamos a crear rápidamente un objeto Jonas aquí solo
con un año de nacimiento,
1991,
y luego otra vez, o calafatear el método H.
Y así recuerda
que esto es básicamente ahora una expresión de función
que tenemos que escribir aquí.
Ahora bloqueemos la palabra clave del disco aquí
y luego
llamemos en realidad a la función de calafateo H
por ahora, solo para ver cómo se verá esta palabra clave.
Y mi esperanza es
que ya puedes adivinar cómo debería verse.
Así que vamos a guardarlo para ver el resultado.
Y de hecho es el objeto de T Jonah.
Así que exactamente este objeto con masilla edad y año.
Y eso significa que es exactamente este objeto.
Y esa es exactamente la regla que te dije
en la conferencia anterior.
Entonces, cuando tenemos una llamada de método, la información de la palabra clave del disco
del método será el objeto que está llamando al método.
Y en este caso, ese es el objeto Jonas.
Así que Jonas aquí es básicamente el dueño del método.
Esa es otra manera
de decirlo y por lo tanto, perspicacia de cog H este es Jonas.
Y luego podemos usar eso
a nuestro favor, para calcular la edad aquí
basado en los datos que ya están en este objeto.
Y ese es uno
de los grandes casos de uso de la palabra clave disco, ¿verdad?
Porque entonces no tenemos que pasar estos datos aquí de nuevo.
Así que en lugar de tener que hacer esto de nuevo
simplemente podemos usar el año de nacimiento que ya es
en el objeto mismo.
Y entonces podemos usar el premio del disco para hacer referencia a ese objeto.
Y entonces esto debería darnos ahora, o un valor habitual aquí de 46.
Excelente. Eso es algo bastante importante.
Y ahora vamos a movernos
en sólo un ejemplo final aquí en esta conferencia.
Así que sigo diciendo que la palabra clave del disco señalará
al objeto que está llamando al método, ¿verdad?
Y eso significa que la palabra clave del disco no apuntará simplemente
en el objeto en el que escribimos el método.
Así que aquí escribimos el método de calafateo H dentro
del objeto Jonas.
Y así podríamos pensar
esa deuda es la razón por la cual la palabra clave del disco apunta
a Jonas, pero eso no es cierto.
La razón por la que la palabra clave del disco señalará
a Jonas en este caso es
porque el de Jonás era el objeto que llamaba al método de la deuda
y esa es una diferencia sutil, pero muy importante.
Y déjame saber, mostrarte por qué es eso.
Así que vamos a crear un nuevo objeto.
a la que voy a llamar una Matilda
y vamos a crear un nombre.
En realidad somos, no necesitamos un nombre.
digamos, año
2017.
Y eso es.
Eso es todo lo que necesitamos en este objeto.
Ahora, recuerda que una función es solo un valor
¿bien?
Y por lo tanto podemos hacer esto.
Podemos decir que Matilda pensó que el calafateo ocho debería ser igual
a Jonas que masilla H
así que básicamente aquí
simplemente copiamos el método de calafateo H de Jonah's a Matilda.
Pero ahora, cuando echamos un vistazo a Matilda aquí
entonces vemos que la función de calafatear H también está aquí.
Está bien.
Y, por supuesto, sigue siendo también
en el de Jonah, pero ahora lo copiamos de un objeto
al otro,
y esto se llama préstamo de método.
Así que básicamente tomamos prestado aquí el método
de un objeto al otro.
Y así no tenemos que escribirlo de forma duplicada.
Así que ahora digamos que Matilda dot masilla H
y, qué piensas
¿Cómo se verá la palabra clave del disco ahora?
Y vamos a deshacernos de algunos
de estos
antes,
para que no se ensucien
o salida aquí.
Y, por supuesto, puedes recuperarlos.
si quieres verlos en tu propio abrigo.
Pero ahora déjame guardar esto
y ver cuál será el resultado de esta edad de engranajes.
Entonces
la edad de Matilda nos dio el resultado correcto
de 20, que es exactamente
37 menos 27.
Y entonces esto significa que en este método
llamar aquí a esta palabra clave en realidad no apunta a Matilda.
Y eso también lo podemos ver aquí.
Así que aquí, como bloqueamos esta palabra clave
vemos que en realidad es el objeto Matilda
por este nacimiento aquí.
Y esto prueba exactamente lo que yo
te lo estaba diciendo antes
que es el hecho de que la palabra clave del disco siempre apunta
al objeto que está llamando al método.
Y aquí estamos llamando al método de Matilda
¿bien? Y por lo tanto, la palabra clave del disco señalará
a Matilda, que era el objeto, que llamaba al método.
Entonces, aunque el método está escrito aquí dentro
del objeto Jonas
la palabra clave del disco seguirá apuntando a Matilda.
Si es Matilda, quien llama al método.
Bueno. Y eso es realmente importante de entender.
Y es la razón por la que dije
en el último video que la palabra clave del disco es realmente dinámica.
no es estático
y depende de cómo se llame a la función.
Y podemos llevar esto aún más lejos
básicamente tomando completamente la función
del objeto Jonas.
Entonces, creemos solo una variable llamada F para la función
y luego decir, Jonas dot masilla H y no llamarlo, por supuesto.
Así que solo queremos copiar ahora la función
en una nueva variable.
Y así una vez más la deuda
como sea posible, porque una función es solo un valor.
Así que tomamos este valor aquí y lo copiamos aquí.
Y claro, sin llamarlo
bien, al igual que aquí, donde copiamos el método
de un lugar a otro, pero no lo llamamos.
Así que aquí podemos echar un vistazo a F en la consola.
Y entonces verás que en realidad es esta función
pero ahora que implicaciones va a tener esto
para la palabra clave de hoy?
Bueno, intentemos llamar a la función F
el cual recuerda es el codigo de jonas dot cog H
y ahora la palabra clave del disco debería estar indefinida.
Y por lo tanto también obtenemos este error.
que no puede leer el año de indefinido.
Así que eso viene de aquí porque
la palabra clave del disco ahora no está definida.
Y así indefinido el año hace, por supuesto que no existe.
Entonces esto sucede porque esta F
la función aquí ahora es solo una llamada de función regular
¿bien? No está unido a ningún objeto.
No hay propietario de esta función F
más aquí en este punto.
Y por lo tanto es sólo un regular
llamada de función como aquí, por ejemplo.
Y por lo tanto, el premio del disco también es indefinido.
como de nuevo, aquí en esta función
que también era una llamada de función regular
al igual que nuestra función F ahora.
Está bien.
Así que de nuevo, esa es una diferencia sutil
en nuestro código, pero hace toda la diferencia
en el resultado que luego obtenemos.
y seguro
la palabra clave del disco es un tema que confunde a muchos principiantes
en JavaScript, pero espero que esta conferencia
y el anterior lo dejó un poco más claro.
Ahora no hablamos sobre las funciones del controlador de eventos aquí
que también os enseñé en el último vídeo.
Así que en una diapositiva allí, pero lo dejo
para la sección Dom avanzada donde volveremos
a esto, pero por ahora en el proximo video
tenemos que echar un vistazo aún más de cerca
en función regular frente a funciones de flecha.