⊗jsOpAdMCL 43 of 60 menu

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
Біз сайттың жұмысы, аналитика және персонализация үшін cookie файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау