⊗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šuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј