Rumah > Soal Jawab > teks badan
Saya melihat persekitaran penggunaan kedua apabila tuan memperkenalkan ini, teks asal ada di sini:
http://www.ruanyifeng.com/blo...
Objek o di sini sepatutnya ini? Jika ya mengapa ini paling tidak kongruen?
function test(){
console.log(this.x);
}
var o = {};
o.x = 1;
o.m = test;
console.log(o.m());
console.log(o===this);
Keluaran ialah:
1
palsu
漂亮男人2017-06-14 10:56:15
Apabila console.log() dilaksanakan dalam persekitaran global, ini sudah tentu menghala ke tetingkap
ini menunjukkan kepada persekitaran pelaksanaan semasa fungsi
PHP中文网2017-06-14 10:56:15
o.m() secara tersirat mengikat ini pada objek o
Dalam skop global, ini menunjukkan kepada objek global
仅有的幸福2017-06-14 10:56:15
Sila ingat bahawa terdapat satu lagi kaedah panggilan func.call(konteks, x, m). Kedua-dua kaedah di atas hanyalah gula sintaktik
function test(){
console.log(this.x);
}
bersamaan dengan
function test(){
console.log(this.x);
}
test.call(undefined)
Secara logiknya, yang dicetak ini sepatutnya tidak ditentukan Tetapi terdapat peraturan dalam penyemak imbas:
Jadi perkara di atas sepatutnya sepadan dengan tetingkap.