javascript - cette question
仅有的幸福
仅有的幸福 2017-05-19 10:23:39
0
5
446

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();
仅有的幸福
仅有的幸福

répondre à tous(5)
小葫芦

L'ambition de l'objet final est window, window.scope, et ce qui est renvoyé n'est pas défini

小葫芦
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);
曾经蜡笔没有小新

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

.
Ty80

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();

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal