This es una palabra reservada que sirve para identificar el contexto de ejecución.
Dependiendo del contexto, this puede apuntar a diferentes lugares:
Llamando al método de un objeto
Así como en POO, this nos permite identificar al objeto con el cual estamos trabajando actualmente.
var persona = {
nombre: "Yves",
getNombre: function(){
return this.nombre;
};
}
Constructores
Cuando utilizamos una función como constructor (utilizando new), this refiere al objeto que está siendo creado.
function Persona(nombre){
this.nombre = nombre;
this.getNombre = function(){
return this.nombre;
};
}
var bar = new Persona("bar");
console.log(bar.getNombre());
Llamando funciones
function test_this(){
return this;
}
console.log(test_this());
console.log(new test_this());
console.log(test_this.apply(document));
console.log(test_this.call(navigator));
Event handlers
En éste caso, el valor the this puede variar.
JavaScript no obtruso
Se acaba de explicar en el último punto del tema anterior.
True o False?
En JavaScript, todo tiene un valor booleano, generalmente conocido como truthly o falsy.
Los siguientes siempre evaluan a false:
false
0
"" (cadena vacía)
null
undefined
NaN
Todos los demás siempre se evaluan a true
¿Qué pasa si una función no tiene return?
La función regresa undefined
A menos que sea utilizada como constructor (llamándola con new). En éste caso se regresa el objeto construido por la función.