Metoden JavaScript Function bind () tillåter ett objekt att låna metoden från ett annat objekt utan att kopiera.
Syntaxen för bind()
metoden är:
func.bind(thisArg, arg1,… argN)
Här func
är en funktion.
bind () Parametrar
Den bind()
metod tar in:
thisArg
- Värdet som anges somthis
parameter förfunc
. Det ignoreras om bunden funktion skapas med en ny operatör.arg1,… argN
(valfritt) - Argument som ska bero på argument som tillhandahålls till den bundna funktionen vid anropfunc
.
Anmärkningar:
- När du använder dennaArg inuti setTimeout konverteras primitiva värden till objekt.
- Om
thisArg
inte anges, behandlas detta för det exekverande omfånget somthisArg
.
Returvärde från bind ()
- Returnerar en kopia av den givna funktionen med det angivna värdet och initiala argument (om de finns).
Exempel: Använd 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
Produktion
100 1 100
När en metod har skickats någonstans separat från objektet - this
går förlorad. Att skapa en bunden funktion från funktionen, med hjälp av det ursprungliga objektet, löser detta problem snyggt
Rekommenderad läsning: JavaScript-funktionssamtal ()