Met de JavaScript-functie bind () - methode kan een object een methode lenen van een ander object zonder te kopiëren.
De syntaxis van de bind()
methode is:
func.bind(thisArg, arg1,… argN)
Hier func
is een functie.
bind () Parameters
De bind()
methode omvat:
thisArg
- De waarde die is opgegeven alsthis
parameter voorfunc
. Het wordt genegeerd als de gebonden functie is gemaakt met een nieuwe operator.arg1,… argN
(optioneel) - Argumenten die moeten worden toegevoegd aan argumenten die aan de gebonden functie worden verstrekt bij het aanroepenfunc
.
Opmerkingen:
- Bij gebruik van thisArg in setTimeout worden primitieve waarden geconverteerd naar objecten.
- Indien
thisArg
niet gespecificeerd, wordt dit van de uitvoerende scope behandeld alsthisArg
.
Retourwaarde van bind ()
- Retourneert een kopie van de gegeven functie met de opgegeven deze waarde en initiële argumenten (indien opgegeven).
Voorbeeld: bind () gebruiken
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
Uitvoer
100 1100
Zodra een methode ergens los van het object wordt doorgegeven, this
gaat het verloren. Door een gebonden functie van de functie te maken, met behulp van het originele object, wordt dit probleem netjes opgelost
Aanbevolen literatuur: JavaScript-functieaanroep ()