⊗jsOpAdMCL 43 of 60 menu

Kehilangan Konteks dalam Kod Kaedah dalam OOP di JavaScript

Apabila menggunakan kod sumber kaedah kelas, konteks boleh hilang. Mari kita lihat contoh. Katakan kita mempunyai kelas berikut:

class User { #name; constructor(name) { this.#name = name; } getName() { return this.#name; } }

Mari buat objek kelas ini:

let user = new User('john');

Mari catat kod kaedah ke dalam pembolehubah:

let func = user.getName;

Pada saat mencatat kaedah ke dalam pembolehubah, konteks telah hilang. Sekarang this di dalam kod kaedah tidak akan menunjuk kepada objek kelas. Mari kita semak, panggil fungsi kami:

console.log(func()); // ralat

Untuk menyelesaikan masalah ini, kita boleh mengikat konteks kepada fungsi, contohnya, melalui bind:

func = func.bind(user); console.log(func()); // berfungsi
Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak