⊗jsOpAdMCL 43 of 60 menu

კონტექსტის დაკარგვა მეთოდის კოდში OOP-ში JavaScript-ში

კლასის მეთოდის საწყისი კოდის გამოყენებისას შეიძლება დაიკარგოს კონტექსტი. მოდით შევხედოთ მაგალითს. დავუშვათ, გვაქვს შემდეგი კლასი:

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

შევქმნათ ამ კლასის ობიექტი:

let user = new User('john');

მეთოდის კოდი ჩავწეროთ ცვლადში:

let func = user.getName;

მეთოდის ცვლადში ჩაწერის მომენტში კონტექსტი დაიკარგა. ახლა this მეთოდის კოდის შიგნით აღარ აღნიშნავს კლასის ობიექტს. შევამოწმოთ, გამოვიძახოთ ჩვენი ფუნქცია:

console.log(func()); // შეცდომა

პრობლემის გადასაჭრელად შესაძლებელია კონტექსტის მიბმა ფუნქციასთან, მაგალითად, bind-ის მეშვეობით:

func = func.bind(user); console.log(func()); // მუშაობს
ქართული
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語Қазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა