En JavaScript, la palabra clave this
se comporta de forma diferente a como lo hace en otros lenguajes. Por empezar, this
siempre se refiere a un objeto, sólo que ese objeto será uno u otro según cómo y dónde se llame a this
.
<aside> 💡 Todavía no trabajaremos con objetos, pero es preciso conocer el uso de this para no tropezar con algunos casos especiales de JavaScript acotado a la programación estructurada.
</aside>
Hay varias formas de usar this
, por lo que a medida que avancemos por este curso, aprenderemos otros usos de this
dependiendo del contexto en el que la usemos.
Empecemos por el principio, el caso más simple y directo: usar this
fuera de todo objeto, función o evento.
El siguiente ejemplo, al ejecutarlo nos muestra la imagen que podemos ver después del bloque de código:
console.log(this);
La respuesta que nos da la consola es el objeto Window
, que es el objeto global.
<aside> 💡 El objeto global puede diferir si JavaScript se está ejecutando en otro entorno, por ejemplo, en Node.js está relacionado al módulo que contiene al script. Aprenderemos sobre módulos más adelante.
</aside>
Podemos asignar this
a una variable, pero no podemos asignar valores a this
, pues this
no es una variable, sino una palabra clave.
this
Si usamos this
dentro de una función, el resultado dependerá de si tenemos activado o no el modo estricto.
Si estamos trabajando en el modo por defecto, no estricto, this
hará referencia al objeto global, que en el navegador es Window
.
Pero, si estamos trabajando en modo estricto, this
será undefined
.
Aprenderemos más sobre funciones y this
en la sección llamada El complejo mundo de las funciones.
this
Cuando trabajamos con objetos es muy común utilizar this
. En ese contexto, this
hace referencia al objeto actual con el que estamos trabajando, como en la mayoría de los lenguajes que soportan Programación Orientada a Objetos.
Dentro de los objetos, podemos tener métodos que también hacen uso de this
. En ese caso, la referencia también es el objeto sobre el que estamos trabajando y al que pertenece el método.