javascript - soalan ini
仅有的幸福
仅有的幸福 2017-05-19 10:23:39
0
5
453

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

membalas semua(5)
小葫芦

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

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

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

给我你的怀抱

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

Ty80

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan