Контексти гумшуда дар рамзи усули ООП дар 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()); // кор мекунад