La esta palabra clave,
es un concepto extremadamente importante para entender
en JavaScript.
Y muchos principiantes, lo encuentran especialmente difícil.
Pero no te preocupes,
En realidad no es tan difícil si sabes exactamente
cómo funciona esta palabra clave.
Entonces, esta palabra clave o esta variable
es básicamente una variable especial que
se crea para cada contexto de ejecución
y por lo tanto cualquier función.
De hecho, aprendimos antes que es uno
de los tres componentes
de cualquier contexto de ejecución,
junto con el entorno variable y la cadena de alcance
que ya aprendimos
sobre antes
Ahora, en términos generales, la palabra clave this,
siempre tomará el valor del dueño
de la función en la que se utiliza la palabra clave this.
También decimos que apunta al propietario de esa función.
Y eso suena muy abstracto.
pero veremos lo que eso significa en un segundo.
Por ahora, lo que es muy importante entender
es que el valor de esta palabra clave
no es estático.
Entonces no siempre es lo mismo.
Depende de cómo la función
en realidad se llama.
Y su valor solo se asigna cuando la función
en realidad se llama.
entonces es muy diferente
de un valor normal,
A este respecto.
si ponemos, por ejemplo,
X a cinco,
entonces X siempre será solo cinco.
Pero esta palabra clave de nuevo,
depende de la forma en que se llame a una función.
Pero, ¿qué significa eso realmente?
Bueno, analicemos cuatro formas diferentes
en el que se pueden llamar funciones.
Y la primera forma de llamar a una función es
como método.
Entonces, como una función adjunta a un objeto.
Entonces, cuando llamamos a un método, la palabra clave this dentro
ese método simplemente apuntará al objeto
en el que se llama al método,
o en otras palabras,
apunta al objeto que
está llamando al método.
¿Bueno?
Y así vamos a ilustrar esto
con un ejemplo sencillo.
Así que el método aquí
es el método calcAge, de nuevo,
porque es una función adjunta al objeto Jonas.
en la última línea aquí,
entonces llamamos al método
y como ves
dentro del método,
usamos la palabra clave this.
Ahora, de acuerdo con lo que acabamos de aprender,
cual debe ser el valor
de la esta palabra clave aquí?
Y eso es correcto,
debería ser Jonas, porque ese es el objeto que
está llamando al método allí abajo
en la última línea.
¿no es así?
Y entonces, en Jonas, por supuesto podemos acceder
todas las propiedades que tiene.
Y así, este.año se convertirá en 1989,
porque ese es Jonas.year también.
Entonces, en este caso,
escribiendo 'Jonas.año'
tendría exactamente el mismo efecto
como 'este.año'.
Pero hacerlo de esta manera
es una solución mucho mejor,
por muchas razones que entraremos en
A lo largo del curso.
Y jugaremos
con este ejemplo un poco mas
en el siguiente vídeo.
Pero de todos modos, otra forma de llamar funciones
es simplemente llamándolos
como funciones normales.
Por lo tanto, no como un método y, por lo tanto, no adjunto a ningún objeto.
En este caso,
la esta palabra clave,
será simplemente indefinido.
Sin embargo, eso solo es válido para el modo estricto.
Entonces, si no estás en modo estricto,
esto realmente apuntará
al objeto global,
que en el caso del navegador
es el objeto ventana.
Y eso puede ser muy problemático.
y entonces,
esta es otra muy buena razón
usar siempre el modo estricto.
A continuación, tenemos funciones de flecha.
y mientras la flecha funciona
no son exactamente una manera
de funciones de llamada.
Es un tipo importante de función.
que tenemos que considerar,
porque, recuerda, las funciones de flecha no tienen sus propias
'esta palabra clave'.
En cambio, si usa 'esta variable'
en una función de flecha,
simplemente será la palabra clave this
de la función circundante.
Entonces de la función padre
y en términos técnicos,
esto se llama la 'palabra clave léxica esta',
porque simplemente se recoge
del ámbito léxico externo
de la función flecha.
Así que nunca olvides esta propiedad tan importante
de funciones de flecha.
Créeme que en realidad me encuentro
uno o dos errores
debido a este comportamiento.
¿Bueno?
Así que es muy importante no olvidar
que las funciones de flecha no tienen sus propias
'esta palabra clave.'
Bueno.
Y por último, si se llama a una función
como oyente de eventos,
entonces esta palabra clave siempre apuntará
al elemento DOM
a la que se adjunta la función de controlador.
Muy sencillo ¿verdad?
Ahora, esta palabra clave
suele ser una gran fuente
de confusión para los principiantes.
Pero si conoces estas reglas,
entonces será mucho más simple
y para hacerlo aún más simple.
También es importante saber
qué, esta palabra clave no es.
Así que esto nunca apuntará a la función.
en que lo estamos usando.
Además, esta palabra clave nunca señalará
al entorno variable
de la función
Y estos son dos conceptos erróneos bastante comunes.
y por eso me dirijo a ellos aquí.
¿Bueno?
Así que de nuevo, las reglas que te mostré aquí
es todo lo que necesitas saber.
Está bien.
Y ahora solo por el bien de la finalización,
en realidad hay otras formas
en la que podemos llamar a una función,
Por ejemplo,
usando la nueva palabra clave o la llamada aplicar
y enlazar métodos,
pero aún no sabemos cuáles son.
Entonces, hablaré sobre cómo esta palabra clave
trabaja con ellos,
Cuando llegue el momento.
De todos modos, eso es todo por esta conferencia.
Así que ahora usemos esto en la práctica.
para que quede claro como el cristal.