Metodi bind
Metodi bind sallii kontekstin sitomisen funktioon.
Ensimmäisenä parametrina tulee välittää
konteksti, ja seuraavina parametreina - funktion parametrit.
Metodi palauttaa uuden funktion,
jossa this on yhtä suuri kuin välitetty
konteksti.
Syntaksi
funktio.bind(konteksti, parametri1, parametri2...);
Esimerkki
Oletetaan, että meillä on syötekenttä:
<input id="elem" value="text">
Oletetaan, että linkki tähän syötekenttään on tallennettu muuttujaan
elem:
let elem = document.querySelector('#elem');
Oletetaan, että meillä on myös seuraava funktio
func:
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
Tehdään bind:n avulla uusi
funktio, joka on kopio funktiosta func,
mutta this siinä on aina yhtä suuri kuin elem:
let newFunc = func.bind(elem);
Nyt muuttujassa newFunc on
funktio. Kutsutaan sitä välittämällä ensimmäiseen
parametriin '1' ja toiseen '2':
newFunc('1', '2');
Kootaan kaikki yhteen:
let elem = document.getElementById('elem');
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
let newFunc = func.bind(elem);
newFunc('1', '2'); // tulostaa 'text12'
Esimerkki
Ei ole pakko tallentaa
bind:in tulosta
uuteen funktioon newFunc,
voi yksinkertaisesti korvata func:
let func = func.bind(elem);