⊗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 для працы сайта, аналітыкі і персаналізацыі. Апрацоўка дадзеных адбываецца згодна Палітыкай канфідэнцыяльнасці.
прыняць усе наладзіць адхіліць