bind ක්රමය
bind ක්රමය ශ්රිතයකට ප්රසන්ගයක් බැඳීමට භාවිතා කරයි.
පළමු පරාමිතිය ලෙස ප්රසන්ගය ලබා දිය යුතු අතර,
පසුව එන පරාමිති ශ්රිතයේ පරාමිති වේ. ක්රමය නව ශ්රිතයක්
ආපසු ලබා දෙයි, එහි ඇතුළත this ලබා දුන් ප්රසන්ගයට
සමාන වේ.
වාක්ය රීතිය
ශ්රිතය.bind(ප්රසන්ගය, පරාමිතිය1, පරාමිතිය2...);
උදාහරණය
අපට ආදාන ක්ෂේත්රයක් ඇති බව සිතමු:
<input id="elem" value="text">
මෙම ආදාන ක්ෂේත්රයට සබැඳිය විචල්යයක ගබඩා කර ඇති බව සිතමු
elem:
let elem = document.querySelector('#elem');
අපට පහත ශ්රිතය func ද ඇති බව සිතමු:
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
bind භාවිතා කරමින් නව ශ්රිතයක්
සාදා ගනිමු, එය func ශ්රිතයේ පිටපතක් වන නමුත්
එහි this සෑම විටම elem ට සමාන වේ:
let newFunc = func.bind(elem);
දැන් newFunc විචල්යයේ ශ්රිතයක්
තිබේ. අපි එය ක්රියාත්මක කරමු, පළමු
පරාමිතියට '1' දෙවන පරාමිතියට '2'
ලබා දෙමින්:
newFunc('1', '2');
සියල්ල එකට ගොනු කරමු:
let elem = document.getElementById('elem');
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
let newFunc = func.bind(elem);
newFunc('1', '2'); // 'text12' ප්රතිදානය කරයි
උදාහරණය
bind හි ප්රතිඵලය නව ශ්රිතයකට newFunc
ලෙස ගබඩා කිරීම අත්යවශ්ය නොවේ,
func නැවත ලිවිය හැකිය:
let func = func.bind(elem);