⊗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ščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј