Maison > Questions et réponses > le corps du texte
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();
高洛峰2017-05-19 10:25:39
L'ambition de l'objet final est window, window.scope, et ce qui est renvoyé n'est pas défini
高洛峰2017-05-19 10:25:39
var scope = 'global';
function log() {
console.log(this.scope)
}
var obj = {
scope: 'obj',
do: function () {
var scope = 'inner';
log();
console.log(scope);
}
};
obj.do();
console.log(obj.scope);
曾经蜡笔没有小新2017-05-19 10:25:39
ce problème de pointage
ce pointage dans différents environnements d'exécution de fonctions JS
给我你的怀抱2017-05-19 10:25:39
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
.PHP中文网2017-05-19 10:25:39
var scope = 'global';
fonction journal() {
console.log(this.scope)
}
var obj = {
scope: 'obj',
do: function () {
var scope = 'inner';
log(); //gobal
console.log(this.scope); //this指向obj,obj作用域中找到scope:obj
console.log(scope); //局部的inner
}
};
obj.do();