JavaScript OOP හි ක්රම කේතයේ සන්දර්භය අහිමි වීම
වර්ගයක ක්රමයක මූලාශ්ර කේතය භාවිතා කරන විට සන්දර්භය අහිමි විය හැක. අපි උදාහරණයක් දෙස බලමු. අප සතුව පහත වර්ගය ඇතැයි සිතමු:
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()); // ක්රියාත්මක වේ