JavaScript Bind -metoden

JavaScript Bind -metoden
I et JavaScript -program, når du bruker “dette”Nøkkelord med en metode og påkalle det fra et mottakerobjekt, noen ganger“dette”Er ikke avgrenset til det nødvendige objektet og resulterer dermed i feil. Du kan bruke JavaScript Bind () -metoden for å forhindre dette problemet.

De JavaScript Bind () -metode brukes til å binde funksjoner. Ved hjelp av denne metoden kan du binde et objekt til en felles funksjon for å vise forskjellige resultater i henhold til kravet ditt. Du kan også bruke Bind () -metoden for å låne funksjoner fra et annet objekt.

Denne oppskrivningen vil forklare JavaScript Bind () -metoden, og eksempler relatert til Funksjonslån og funksjonsbinding vil også bli demonstrert. Så la oss starte!

JavaScript Bind () -metode

JavaScript Bind () -metoden lagrer konteksten til gjeldende parametere og “dette”For fremtidig utførelse. Den opprettholder vanligvis en funksjons utførelseskontekst som kjører i en annen sammenheng.

I tilfelle av funksjonsbinding, Bind () -metoden skaper en Ny funksjon har den nøyaktige kopien av den opprinnelige funksjonens kropp. Verdien av "dette”Nøkkelord sendes som den første parameteren i Bind () -metoden, og det kan også ta flere argumenter for binding. Mens i Funksjonslån, JavaScript Bind () -metoden låner de funksjon av et annet objekt uten å lage sin kopi.

Syntaks av JavaScript Bind () -metoden

Ta en titt på syntaksen til JavaScript Bind () -metoden:

funksjon.bind (thisarg, [arg1], [arg2], ...);

Her, "Thisarg”Representere“dette”Søkeord og “[Arg1], [Arg2], .. ”Er de ekstra argumentene. Den gitte JavaScript Bind () -metoden vil returnere en ny funksjon når den påberopes og også settes "dette”Til den spesifiserte verdien.

Eksempel 1: Bruke JavaScript Bind () -metode for enkeltfunksjonsbinding
Først av alt vil vi lage et enkelt program som omfatter et "ansatt”Objekt. “ansatt”Objekt har et“Navn”Eiendom og en“showInfo ()”Metode:

La ansatt =
Navn: 'Jack Smith',
showInfo: funksjon ()
konsoll.Logg (dette.Navn);

;

dette”Søkeord lagt til i“showInfo ()”Metoden vil binde“Navn”Variabel til funksjonen som derfor får tilgang til”Jack Smith”Som et ansattes navn er ikke et problem. Denne prosessen er kjent som standardbinding i JavaScript:

ansatt.showInfo ();

Utførelse av det ovennevnte programmet viser følgende utgang:

Nå vil vi lage en ny variabel funksjon, “ShowInfo2”Som refererer til“showInfo ()”Funksjonen til ansattes objekt. I dette tilfellet vil standardbindingen gå tapt, og programmet vil ikke vise noen utdata:

var showInfo2 = ansatt.showInfo;
showInfo2 ();

Så når tilbakeringingen “ansatt.showInfo”Påberopes,“Navn”Eiendom eksisterer ikke i det globale objektet, og den er satt til“udefinert”Som vist i utgangen:

Du kan bruke JavaScript Bind () -metoden for å sikre at all binding relatert til “dette”Søkeord er ikke tapt. Bind () -metoden angir “denne” konteksten til det spesifiserte objektet:

La ansatt =
Navn: 'Jack Smith',
showInfo: funksjon ()
konsoll.Logg (dette.Navn);

;

Her oppretter JavaScript Bind () -metoden en ny funksjon med "dette”Søkeord som refererer til parameteren i parentesene. Det tillater oss også å påkalle "showInfo ()”-Funksjon mens du passerer“ansatt”Objekt som et argument:

var showInfo2 = ansatt.showInfo.bind (ansatt);
showInfo2 ();

ShowInfo2 () -metoden vil vise de tildelte “Navn”Av“ansatt”Objekt:

Eksempel 2: Bruke JavaScript Bind () -metode for flere funksjoner Binding
I det følgende eksempel vil vi lage tre objekter: “Ansatt1”,“Ansatt2”, Og“Ansatt3”:

La ansatt1 =
Navn: 'Jack';
La ansatt2 =
Navn: 'Max';
La ansatt3 =
Navn: 'Paul';
funksjon showInfo ()
konsoll.Logg (dette.Navn);

For hvert av det ovennevnte objektet vil vi påkalle "showInfo ()”Metode ved å bruke JavaScript”binde()”Metode:

var showInfo2 = showInfo.bind (ansatt1);
showInfo2 ();
var showInfo3 = showInfo.bind (ansatt2);
showInfo3 ();
var showInfo4 = showInfo.bind (ansatt3);
showInfo4 ();

Utgangen vil vise navnegenskapsverdiene til “Ansatt1”,“Ansatt2”, Og“Ansatt3”Objekter:

Eksempel 3: Bruke JavaScript Bind () Metode for funksjonslån
Ved hjelp av JavaScript Bind () -metoden kan et objekt låne en funksjon av et annet tilsatt objekt. For demonstrasjonen vil vi lage to objekter “bil”Og“fly”Å ha“Navn”Eiendom,“løpe()”Og“fly()”Metoder henholdsvis:

La bil =
Navn: 'Bil',
Kjør: funksjon (hastighet)
konsoll.Logg (dette.Navn + 'beveger seg på' + hastighet + 'mph.');

;
La fly =
Navn: 'Fly',
Fly: funksjon (hastighet)
konsoll.Logg (dette.Navn + 'flyr på' + hastighet + 'mph.');

;

Nå, hvis du vil ha "fly" ha innvendinger løpe, Bruk deretter JavaScript Bind () -metoden for å lage en kjør () -funksjon med “dette”Nøkkelord, som setter det til“fly”Objekt:

La løpe = bil.løpe.bind (fly, 20);
løpe();

Vi har kalt bindet () med bilen.Run () Metode og bestått “fly" som "Navn”Eiendomsverdi og dens hastighet som“20”:

Den ovennevnte utgangen betyr at vi ved å bruke JavaScript Bind () -metoden har lånt løpe() metode fra bil objekt uten å lage sin kopi.

Konklusjon

De JavaScript bind () Metode lagrer konteksten til gjeldende parametere og “dette”For fremtidig utførelse. Den opprettholder vanligvis en funksjons utførelseskontekst som kjører i en annen sammenheng. Det kan brukes til funksjonsbinding og funksjonslån. Denne oppskrivningen forklarte JavaScript Bind () -metoden, og eksempler relatert til funksjonslån og funksjonsbinding er også demonstrert.