Penggunaan ini - Soalan tentang ini dalam Javascript Apabila fungsi dipanggil sebagai kaedah objek, ini merujuk kepada objek unggul.
淡淡烟草味
淡淡烟草味 2017-06-14 10:54:15
0
4
698

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

淡淡烟草味
淡淡烟草味

membalas semua(4)
过去多啦不再A梦

Ini===tetingkap dalam paparan global

漂亮男人

Apabila console.log() dilaksanakan dalam persekitaran global, ini sudah tentu menghala ke tetingkap
ini menunjukkan kepada persekitaran pelaksanaan semasa fungsi

洪涛

o.m() secara tersirat mengikat ini pada objek o
Dalam skop global, ini menunjukkan kepada objek global

仅有的幸福

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:

Jika konteks yang anda lalui adalah batal atau tidak ditentukan, maka objek tetingkap ialah konteks lalai (konteks lalai dalam mod ketat tidak ditentukan)

Jadi perkara di atas sepatutnya sepadan dengan tetingkap.

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