This - sabrinabm94/javascript GitHub Wiki
This
O valor do this é determinado pelo contexto onde a função é chamada
Global
// this no contexto local se refere ao Window
document.write(this); //[object Window]
Local
// this dentro de um objeto se refere a instância daquele objeto
var object = {
func: function() {
return this; //[object Object]
}
};
document.write(object.func());
// this dentro de vários objetos se refere ao objeto pai mais próximo
var father = {
name: "father",
child: {
name: "child",
func: function() {
return this.name; //[object Child]
}
}
}
document.write(father.child.func());
Para evitar confusões com o this, é indicado salvar seu valor numa variável e utilizar essa para evitar perder seu valor pelo contexto
var self = this; // guardando o valor de this
loop: function() {
this.friends.forEach(function(friend) {
console.log(self.name + ' knows ' + friend);
});
}
Referências
TUDO que você deve estudar de JavaScript antes do React - YouTube