Méthode bind
La méthode bind permet de lier un contexte à une fonction.
Le premier paramètre doit être le contexte,
et les paramètres suivants sont les paramètres
de la fonction. La méthode retourne une nouvelle fonction,
dans laquelle this sera égal au contexte transmis.
Syntaxe
fonction.bind(contexte, paramètre1, paramètre2...);
Exemple
Supposons que nous ayons un input :
<input id="elem" value="text">
Supposons que la référence à cet input soit stockée dans la variable
elem :
let elem = document.querySelector('#elem');
Supposons également que nous ayons la fonction suivante
func :
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
Utilisons bind pour créer une nouvelle
fonction, qui sera une copie de la fonction func,
mais this y sera toujours égal à elem :
let newFunc = func.bind(elem);
Maintenant, la variable newFunc contient
une fonction. Appelons-la, en passant
'1' comme premier paramètre
et '2' comme second :
newFunc('1', '2');
Rassemblons le tout :
let elem = document.getElementById('elem');
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
let newFunc = func.bind(elem);
newFunc('1', '2'); // affichera 'text12'
Exemple
Il n'est pas nécessaire de stocker le résultat de
bind dans une nouvelle fonction newFunc,
on peut simplement écraser func :
let func = func.bind(elem);