Eu tenho uma função
let comparaComThis = function (param) {
console.log (this === param)
}
e tenho um objeto que chama essa função
const obj2 = {
consta(){
comparaComThis(obj2)
}
}
a questão é que quando eu chamo a função do objeto, o this aponta para o global. Porquê?
1 curtida
Por padrão, this
será o objeto global que no navegador é o window
.
Agora, se tu usar o modo estrito: ‘use strict’. O this será definido a partir de onde ele é executado:
Em modo estrito, o valor de this
permanece seja qual for o definido ao entrar no contexto de execução
Ex.:
<script>
'use strict';
var comparaComThis = function(param) {
console.log(this === param)
}
const obj2 = {
consta() {
comparaComThis(obj2);
this.comparaComThis2(obj2);
},
comparaComThis2: function(param) {
console.log(this === param)
}
}
obj2.consta();
</script>
Console:
false
true
FONTE: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Operators/this
1 curtida