Maison  >  Questions et réponses  >  le corps du texte

javascript - cette question

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();
仅有的幸福仅有的幸福2711 Il y a quelques jours422

répondre à tous(5)je répondrai

  • 高洛峰

    高洛峰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

    répondre
    0
  • 高洛峰

    高洛峰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);

    répondre
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-19 10:25:39

    ce problème de pointage
    ce pointage dans différents environnements d'exécution de fonctions JS

    répondre
    0
  • 给我你的怀抱

    给我你的怀抱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

    .

    répondre
    0
  • PHP中文网

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

    répondre
    0
  • Annulerrépondre