JavaScript-funksjonen bind () -metoden lar et objekt låne metode fra et annet objekt uten å kopiere.
Syntaksen til bind()
metoden er:
func.bind(thisArg, arg1,… argN)
Her func
er en funksjon.
bind () Parametere
Den bind()
metoden tar i:
thisArg
- Verdien gitt somthis
parameter forfunc
. Det ignoreres hvis bundet funksjon opprettes ved hjelp av ny operatør.arg1,… argN
(valgfritt) - argumenter for å avhenge av argumenter levert til den bundne funksjonen når de påkallerfunc
.
Merknader:
- Når du bruker denneArg inne i setTimeout, konverteres primitive verdier til objekter.
- Hvis
thisArg
ikke er spesifisert, blir dette av det utførende omfanget behandlet somthisArg
.
Returverdi fra bind ()
- Returnerer en kopi av den gitte funksjonen med den spesifiserte denne verdien, og innledende argumenter (hvis de er gitt).
Eksempel: Bruke 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
Produksjon
100 1100
Når en metode er sendt et annet sted enn objektet - this
går tapt. Å lage en bundet funksjon fra funksjonen ved hjelp av det opprinnelige objektet, løser dette problemet pent
Anbefalt lesing: JavaScript-funksjonssamtale ()