Metod bind
Metod bind funksiýanyň kontekstine baglanyşyk etmäge mümkinçilik berýär.
Ilkinji parametr hökmünde kontekst berlilmeli,
indiki parametrler bolsa funksiýanyň parametrleri
bolmaly. Metod täze funksiýany gaýtaryp beryär,
onuň içinde this berlen kontekste deň boljak.
Sintaksis
funksiýa.bind(kontekst, parametr1, parametr2...);
Mysal
Bizde input bolsun:
<input id="elem" value="tekst">
Bu inputa çykgyt elem üýtgeýjisinde ýazylan bolsun:
let elem = document.querySelector('#elem');
Şeýle hem bizde aşakdaky func funksiýasy bolsun:
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
Indi bind ulanyp, täze funksiýa dörediň,
ýagny func funksiýasynyň nusgasy, ýöne
this ýerde hemme wagt elem deň bolsun:
let newFunc = func.bind(elem);
Indi newFunc üýtgeýjisinde funksiýa ýerleşir.
Geliň ony çagyralyň, birinji parametr hökmünde
'1', ikinji parametr hökmünde bolsa
'2' bereliň:
newFunc('1', '2');
Geliň hemmesini bilelikde jemläýäli:
let elem = document.getElementById('elem');
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
let newFunc = func.bind(elem);
newFunc('1', '2'); // 'tekst12' çykarar
Mysal
bind işiniň netijesini hökmany täze
newFunc funksiýasyna ýazmaly däl,
ýöne şeýle hem func üýtgeýjisini täzeden ýazyp bolar:
let func = func.bind(elem);