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हिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել