Rumah > Soal Jawab > teks badan
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();
高洛峰2017-05-19 10:25:39
Cita-cita objek terakhir, tingkap, tingkap.skop, kembali tidak ditentukan
高洛峰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
masalah penunjuk ini
penunjukan ini dalam persekitaran pelaksanaan fungsi JS yang berbeza
给我你的怀抱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
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();