Fungsi _C tidak mendapatkan this yang benar ketika digunakan pada anggota kelas khusus

Penulis:pencahayaan, Dibuat: 2019-08-11 14:47:22, Diperbarui: 2019-08-11 14:50:47

Cobalah menjalankan kode berikut:

function MyClass()
{
    this.m_name = "my name";
}

MyClass.prototype.printMyName = function()
{
    Log(this.m_name);
    return true;
}

function main() {
    var myobj = new MyClass();
    myobj.printMyName();
    _C(myobj.printMyName);
}

Hasil cetak adalah:

  • nama saya
  • nol

Ketika _C ((myobj.printMyName) dipanggil, this dalam fungsi tidak menunjuk ke objek myobj. Bagaimana cara mengatasi masalah ini?


Lebih banyak

Mimpi kecil` ` fungsi MyClass (() { var sendiri = {} self.m_name = "Nama saya" Aku tidak tahu. self.printMyName = fungsi () { Log ((self.m_name) Kembali benar {\cH00FFFF} Aku tidak tahu. kembali diri {\cH00FFFF} Fungsi utama var myobj = MyClass (() myobj.printMyName (() _C ((myobj.printMyName) {\cH00FFFF} ` `

Mimpi kecilPenyebabnya adalah setelah myobj.printMyName dikirim ke _C, this pointer menunjuk ke.

pencahayaanTerima kasih!