La méthode de la fonction JavaScript bind () permet à un objet d'emprunter une méthode à un autre objet sans copier.
La syntaxe de la bind()
méthode est:
func.bind(thisArg, arg1,… argN)
Voici func
une fonction.
Paramètres de bind ()
La bind()
méthode prend en compte:
thisArg
- La valeur fournie commethis
paramètre pourfunc
. Il est ignoré si la fonction liée est créée à l'aide d'un nouvel opérateur.arg1,… argN
(facultatif) - Arguments à ajouter aux arguments fournis à la fonction liée lors de l'appelfunc
.
Remarques:
- Lorsque vous utilisez thisArg dans setTimeout, les valeurs primitives sont converties en objets.
- Si
thisArg
n'est pas spécifié, le this de la portée en cours d'exécution est traité commethisArg
.
Valeur renvoyée par bind ()
- Renvoie une copie de la fonction donnée avec la valeur spécifiée et les arguments initiaux (si fournis).
Exemple: utilisation de bind ()
this.x = 1; // "this" here is the global window object in browser const obj = ( x: 100, getX: function () ( return this.x; ), ); console.log(obj.getX()); // 100 const retrieveX = obj.getX; // the function gets invoked at the global scope console.log(retrieveX()); // 1 // Create a new function with 'this' bound to obj // global variable 'x' with obj's property 'x' are two separate entities const boundGetX = retrieveX.bind(obj); console.log(boundGetX()); // 100
Production
100 1 100
Une fois qu'une méthode est passée quelque part séparément de l'objet - this
est perdue. La création d'une fonction liée à partir de la fonction, en utilisant l'objet d'origine, résout parfaitement ce problème
Lecture recommandée: Appel de la fonction JavaScript ()