Hvordan du bruker reflekterer API i JavaScript

Hvordan du bruker reflekterer API i JavaScript

Refleksjon i JavaScript anses som evnen til å manipulere egenskaper, variabler og objektmetoder ved kjøretid. Reflekter API ble introdusert som et nytt globalt objekt i ES6, slik at du kan påkalle objektmetoder, få og angi objektegenskapsverdier, konstruere objekter, utvide og manipulere egenskaper. Det tillater deg også å lage dynamiske kodehåndteringsrammer og programmer.

Denne oppskrivningen vil diskutere bruk av Gjenspeiler API i JavaScript ved hjelp av passende eksempler. Så la oss starte!

Gjenspeiler API i JavaScript

Reflektere er et nytt globalt objekt som tilbyr mange verktøyfunksjoner som overlapper med ES5 Global “Gjenstand”. Alle de medfølgende gjenspeiler API -metoder er "Introspeksjonsfunksjoner,”Som lar deg undersøke og manipulere et objekts egenskaper ved kjøretid.

Her er poenget å vurdere at introspeksjonsfunksjonene allerede er innebygd i JavaScript; Så hvorfor kreves et nytt API når disse funksjonene allerede kan være en del av JavaScript -objektet?

Ta en titt på de undergitte punktene for å få svaret:

Alle API -er i et enkelt navneområde: Som vi har nevnt tidligere, eksisterer objektrefleksjon APIer allerede i JavaScript; De var imidlertid ikke strukturert under et eneste navneområde. Så i ES6 er alle refleksjons -API -er organisert i "Reflektere”Navnområde.

Kode enkelhet: I JavaScript, når en introspeksjonsmetode ikke klarer å fullføre en spesifisert objektrelatert operasjon, kaster den et unntak. Dette gir ekstra overhead til programmereren for å håndtere unntaket. Mens, i tilfelle av Reflect API, blir unntaket håndtert som en "Boolsk”(True eller False) Verdi.

Pålitelighet av funksjonsanrop: Sammenlignet med objektfunksjoner i ES5, gir Reflect API en mer elegant og pålitelig måte å ringe eller bruke en funksjon.

La oss nå gå gjennom bruken av Reflect API -metodene i detalj.

Hvordan du bruker reflekterer.konstruere () Metode i JavaScript

Reflektere.konstruere ()”JavaScript -metoden brukes til å påkalle Reflect API -konstruktøren mens de spesifiserer de nødvendige argumentene. Denne metoden oppfører seg på samme måte som “ny”Operatør. Du kan også bruke refleksjonen.konstruere () metode for innstillingsprototypen til et objekt.

Syntaks for bruk av refleksjon.konstruere () Metode i JavaScript

Reflektere.konstruksjon (mål, argumenterliste [, newtarget])

Her, “mål”Representerer målfunksjonen som vil bli påberopt,”argumenterliste”Er funksjonsparameteren, og“Newtarget”Er en valgfri parameter som brukes til å spesifisere prototypen til en konstruktør.

Eksempel: Hvordan bruke reflektere.konstruere () Metode i JavaScript

Nå vil vi bruke refleksjonen.konstruere () metode for å lage et objekt “x”Å ha“Array”Prototype og følgende argumenterliste:

const x = reflektere.konstruksjon (matrise, [10,20,30,40,50]);
konsoll.logg (x);

Utførelse av den ovennevnte koden vil returnere en ny “x”Objekt med den spesifiserte argumentlisten og dens prototype:

Hvordan du bruker reflekterer.Bruk () Metode i JavaScript

Reflektere.søke om()”Metode brukes til å kalle en funksjon ved hjelp av det spesifiserte argumentet.

Syntaks for bruk av refleksjon.Bruk () Metode i JavaScript

Reflektere.Bruk (Target, Thisarg, argumenter)

Her, “mål”Representerer målfunksjonen som vil bli påberopt,”Thisarg”Vil oppføre seg som en“dette”Nøkkelord for funksjonen, og”argumenter”Representere parametrene som den påkalte funksjonen vil akseptere.

Eksempel: Hvordan bruke reflektere.Bruk () Metode i JavaScript

Først av alt vil vi lage en "x”Array som består av fem elementer:

var x = [10,20,30,40,50];

I neste trinn vil vi bruke "Reflektere.søke om()”Metode for å bruke“Matte.Maks”Funksjon til matrisen som heter“x”:

konsoll.Logg (reflekter.Bruk (matematikk.maks, udefinert, x));

Matte.Maks”Funksjonen vil returnere det største antallet som finnes i“x”Array:

Hvordan du bruker reflekterer.DefineProperty () -metode i JavaScript

Hvis du vil legge til eller oppdatere egenskapene til et objekt, kan du bruke Reflektere.DefineProperty () JavaScript -metoden. Det fungerer som ligner på Gjenstand.DefineProperty () metode; Imidlertid Reflektere.DefineProperty () Metoden returnerer en boolsk verdi snarere enn det endrede objektet.

Syntaks for bruk av refleksjon.DefineProperty () -metode i JavaScript

Reflektere.DefineProperty (Target, PropertyKey, Attributter)

Her, “mål”Representerer målfunksjonen som vil bli påberopt,”Eiendomskraft”Indikerer objektets egenskap som må defineres eller endres, og“attributter”Angi verdien for den spesifiserte eiendomstasten.

Eksempel: Hvordan bruke reflektere.DefineProperty () -metode i JavaScript

I det undergitte eksemplet vil vi definere “rekvisitt”Som eiendomstKE for“obj1”JavaScript -objekt som inneholder”60”Som dens verdi:

const obj1 = ;
(Reflektere.DefineProperty (obj1, 'prop', verdi: 60))
konsoll.Logg (OBJ1.rekvisitt);

Som du kan se, har vi med hell definert en verdi for "rekvisitt”PropertyKey of“obj1" bruker Reflektere.DefineProperty () metode:

Hvordan du bruker reflekterer.Get () Metode i JavaScript

I JavaScript, Reflektere.få () metode henter et objekts egenskap som en funksjon.

Syntaks for bruk av refleksjon.Get () Metode i JavaScript

Reflektere.Get (Target, PropertyKey [, mottaker])

Her, “mål”Representerer JavaScript -objektet hvis eiendom er tilgjengelig,“Eiendomskraft”Indikerer navnet på eiendommen du vil få, og“mottaker”Er en valgfri parameter som representerer verdien av“dette”Brukes for å ringe målet.

Eksempel: Hvordan bruke reflektere.Get () Metode i JavaScript

Reflektere.få()”Metode brukes i følgende eksempel for å få først Eiendomsverdi av “x”Array:

var x = [10,20,30,40,50];
konsoll.Logg (reflekter.få (x, '1'));

Utgangen til den oppgitte koden vil vise verdien av den spesifiserte egenskapen:

Hvordan du bruker reflekterer.getPrototypeOf () -metode i JavaScript

Reflektere.getPrototypeOf ()”Metoden påberopes for å hente prototypen til et JavaScript -objekt.

Syntaks for bruk av refleksjon.getPrototypeOf () -metode i JavaScript

Reflektere.GetPrototypeOf (Target)

Her, “mål”Representerer objektene hvis prototype vil bli hentet ved hjelp av Reflektere.getPrototypeOf () metode.

Eksempel: Hvordan bruke reflektere.getPrototypeOf () -metode i JavaScript

For det første vil vi lage et objekt av "null”Prototype:

const obj1 = objekt.opprette (null);

Etter det vil vi bruke “Reflektere.getPrototypeOf ()”Metode for å få prototypen til“obj1”:

konsoll.Logg (reflekter.getPrototypeOf (obj1));

Undergitt utgang betyr at "obj1”Har“null”Prototype:

Hvordan du bruker reflekterer.Set () Metode i JavaScript

I JavaScript, Reflektere.Set () Metode brukes til å sette eiendomsverdien til et objekt.

Syntaks for bruk av refleksjon.Set () Metode i JavaScript

Reflektere.Sett (mål, eiendomstak, verdi [, mottaker])

Her, “mål”Representerer JavaScript -objektet hele eiendomsverdien vi skal sette,“Eiendomskraft”Er en spesifisert objektegenskap,”verdi”Indikerer den nye verdien. Til slutt, “mottaker”Er en valgfri parameter som har verdien av“dette”Brukes for å ringe målet.

Eksempel: Hvordan bruke reflektere.Set () Metode i JavaScript

For å demonstrere bruken av refleksjon.Set () Metode, først og fremst, lage et tomt objekt som heter “obj”:

const obj = [];

Utfør deretter kode under gitt for å angi egenskapsverdiene til det spesifiserte objektet:

Reflektere.sett (obj, 0, 'første');
Reflektere.sett (obj, 1, 'andre');
Reflektere.sett (obj, 2, 'tredje');
konsoll.logg (OBJ);

Nå, sjekk ut “obj”Eiendomsverdier som vi har satt ved hjelp av refleksjonen.Set () Metode:

Hvordan du bruker reflekterer.DeleteProperty () Metode i JavaScript

Du kan bruke Reflektere.DeleteProperty () -metode for å slette den spesifiserte egenskapen til et objekt.

Syntaks for bruk av refleksjon.DeleteProperty () Metode i JavaScript

Reflektere.DeleteProperty (Target, PropertyKey)

Her, “mål”Representerer JavaScript -objektet hvis egenskap vil bli slettet, og“Eiendomskraft”Indikerer eiendommen.

Eksempel: Hvordan bruke reflektere.DeleteProperty () Metode i JavaScript

Dette eksemplet vil bruke refleksjonen.DeleteProperty () -metode for å slette først Eiendomsverdi av det opprettet "x”Objekt:

var x = [10,20,30,40,50];
Reflektere.deleteProperty (x, '1');

Produksjon

Reflektere.DeleteProperty ()”Metoden kommer tilbake“ekte”Hvis det spesifiserte objektets egenskap blir slettet med hell; Ellers vil retursaken bli satt til “falsk”Når den spesifiserte eiendommen ikke er funnet.

Konklusjon

Bruken av Reflect API i JavaScript lar deg påkalle objektmetoder, få og angi objektegenskapsverdier, konstruere objekter, utvide og manipulere egenskapene ved kjøretid. Det tillater også å lage dynamiske kodehåndteringsrammer og programmer. Denne oppskrivningen diskuterte bruken av Reflect API i JavaScript ved hjelp av passende eksempler.