Rumah  >  Soal Jawab  >  teks badan

javascript - soalan ini

Mengapa undefined dicetak? Bagaimana saya boleh membuat kod ini mencetak global, obj dan inner masing-masing

var scope = 'global';

function log() {
    console.log(this.scope)
}

var obj = {
    scope: 'obj',
    do: function () {
        var scope = 'inner';
        log()
    }
};

obj.do();
仅有的幸福仅有的幸福2711 hari yang lalu411

membalas semua(5)saya akan balas

  • 高洛峰

    高洛峰2017-05-19 10:25:39

    Cita-cita objek terakhir, tingkap, tingkap.skop, kembali tidak ditentukan

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

    balas
    0
  • 曾经蜡笔没有小新

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

    masalah penunjuk ini
    penunjukan ini dalam persekitaran pelaksanaan fungsi JS yang berbeza

    balas
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-19 10:25:39

    Pertama sekali, apa yang dicetak oleh kod ini haruslah global, bukan undefined Kemudian, adalah mustahil untuk memanggil inner melalui cara anda menulisnya. Untuk yang lain, lihat sahaja penunjuk ini

    balas
    0
  • PHP中文网

    PHP中文网2017-05-19 10:25:39

    var skop = 'global';

    log fungsi() {

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

    balas
    0
  • Batalbalas