Pourquoi undéfini est-il imprimé ? Comment puis-je imprimer ce code respectivement global, obj et interne
var scope = 'global';
function log() {
console.log(this.scope)
}
var obj = {
scope: 'obj',
do: function () {
var scope = 'inner';
log()
}
};
obj.do();
L'ambition de l'objet final est window, window.scope, et ce qui est renvoyé n'est pas défini
ce problème de pointage
ce pointage dans différents environnements d'exécution de fonctions JS
Tout d'abord, ce que ce code imprime doit être global, et non indéfini. Ensuite, il est impossible d'appeler inner via this.scope comme vous l'écrivez. Pour le reste, regardez simplement le pointeur this
.var scope = 'global';
fonction journal() {
}
var obj = {
};
obj.do();