⊗jsOpAdMCL 43 of 60 menu

Kupoteza Muktadha katika Msimbo wa Njia katika OOP katika JavaScript

Wakati wa kutumia msimbo asilia wa njia ya darasa muktadha unaweza kupotea. Wacha tuangalie kwa mfano. Tuwapo tuna darasa lifuatalo:

class User { #name; constructor(name) { this.#name = name; } getName() { return this.#name; } }

Tutengeneze kitu cha darasa hili:

let user = new User('john');

Tuandike msimbo wa njia kwenye kutofautisha:

let func = user.getName;

Wakati wa kuandika njia kwenye kutofautisha muktadha ulipotea. Sasa this ndani ya msimbo wa njia hautaonesha kwenye kitu cha darasa. Tuangalie, tuitaje kitendo chetu:

console.log(func()); // hitilafu

Kutatua tatizo unaweza kufungia muktadha kwenye kitendo, kwa mfano, kupitia bind:

func = func.bind(user); console.log(func()); // inafanya kazi
nltrkkuzen