⊗jsOpAdMCL 43 of 60 menu

JavaScript'te OOP'de Metot Kodunda Bağlam Kaybı

Bir sınıf metotunun kaynak kodu kullanılırken bağlam kaybedilebilir. Bir örnek üzerinden inceleyelim. Aşağıdaki sınıfa sahip olduğumuzu varsayalım:

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

Bu sınıfın bir nesnesini oluşturalım:

let user = new User('john');

Şimdi metot kodunu bir değişkene yazalım:

let func = user.getName;

Metot bir değişkene yazıldığı anda bağlam kayboldu. Artık this metot kodunun içinde sınıf nesnesini göstermeyecek. Fonksiyonumuzu çağırarak kontrol edelim:

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

Sorunu çözmek için bağlam fonksiyona bağlanabilir, örneğin, bind aracılığıyla:

func = func.bind(user); console.log(func()); // çalışır
Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet