Metoden JavaScript-funktion bind () tillader et objekt at låne metode fra et andet objekt uden at kopiere.
Metodens syntaks bind()
er:
func.bind(thisArg, arg1,… argN)
Her func
er en funktion.
bind () Parametre
Den bind()
metode tager i:
thisArg
- Værdien, der er angivet somthis
parameter forfunc
. Det ignoreres, hvis bundet funktion oprettes ved hjælp af en ny operator.arg1,… argN
(valgfrit) - Argumenter, der skal afhænge af argumenter, der leveres til den bundne funktion, når de påberåber sigfunc
.
Bemærkninger:
- Når du bruger thisArg inde i setTimeout, konverteres primitive værdier til objekter.
- Hvis
thisArg
ikke er specificeret, behandles dette for det udførende omfang somthisArg
.
Returneringsværdi fra bind ()
- Returnerer en kopi af den givne funktion med den angivne værdi og initialargumenter (hvis de findes).
Eksempel: Brug af 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 metode er sendt et sted adskilt fra objektet - this
går tabt. Oprettelse af en bundet funktion fra funktionen ved hjælp af det originale objekt løser dette problem pænt
Anbefalet læsning: JavaScript-funktionskald ()