Fabrikkfunksjoner i JavaScript

Fabrikkfunksjoner i JavaScript
Mens du skriver et program, er det situasjoner når du vil legge til flere forekomster av et objekt raskt. Fabrikkfunksjoner i JavaScript brukes eksplisitt til dette formålet. En fabrikk i den virkelige verden kan massivt og raskt produsere flere kopier av en vare; Det samme gjelder fabrikkfunksjonene.

I JavaScript returnerer en fabrikkfunksjon et objekt som kan gjenbrukes for å lage flere forekomster av samme objekt. Det kan i tillegg akseptere argumenter som tillater deg å tilpasse det returnerte objektet.

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

Fabrikkfunksjon i JavaScript

JavaScript Factory -funksjoner har den samme funksjonaliteten som en klassefunksjon eller en konstruktør har; Imidlertid bruker disse funksjonene ikke “ny”Nøkkelord mens du oppretter et objektforekomst og returner et objekt som omfatter metoden eller verdiene lagt til.

Så hvis du har kompleks logikk og trenger å konstruere flere objektforekomster gjentatte ganger, kan du legge til den logikken en gang i en fabrikkfunksjon og deretter bruke den til å lage objekter.

Eksempel: Hvordan bruke fabrikkfunksjoner i JavaScript
Først av alt vil vi lage en "Ansatt1”Objekt som har to egenskaper:“Navn”Og“betegnelse”:

La ansatt1 =
Navn: 'Alex',
Betegnelse: 'Manager' ,
showInfo ()
Returner dette.Navn + 'er en' + dette.betegnelse;

;
konsoll.Logg (ansatt1.showInfo ());

Vi har også lagt til en "showInfo ()”Metode som vil sende ut objektegenskapene i et strengformat.

Ta en titt på utdataene fra ShowInfo () -metoden for "Ansatt1”Objekt:

La oss nå si at du vil opprette et annet objekt "Ansatt2”For en annen ansatt. For dette formålet må du skrive ut den samme koden mens du endrer verdiene på egenskaper i henhold til dine krav:

La ansatt2 =
Navn: 'Stepheny',
Betegnelse: 'Video Editor' ,
showInfo ()
Returner dette.Navn + 'er en' + dette.betegnelse;

;
konsoll.Logg (Ansatt2.showInfo ());

Du kan følge den ovennevnte prosedyren for å lage noen få ansatteobjekter. Men hva om du vil lage 100 ansatteobjekter? I et slikt tilfelle vil det å lage hvert objekt separat mens du skriver den samme koden igjen og igjen konsumere mye tid, krefter og kan gjøre koden din til å håndtere.

Du kan bruke en fabrikkfunksjon for å hjelpe deg med å unngå kodedobbelt. Det oppretter et objekt uten å dykke ned i komplekse klasser eller bruke "ny”Nøkkelord.

Nå vil vi opprette en JavaScript -fabrikkfunksjon “Create Employee”For å lage våre ansatteobjekter:

funksjon CreateEmployee (navn, betegnelse)
komme tilbake
Navn: Navn,
Betegnelse: Betegnelse,
showInfo ()
Returner dette.Navn + 'er en' + dette.betegnelse;

Den ovennevnte fabrikkfunksjonen vil returnere et objekt som består av egenskapsverdiene som er gitt som argumenter.

I neste trinn vil vi opprette tre ansatteobjekter som er kalt som Alex, Smith, og Marie:

La Alex = Create Employeee ('Alex', 'Manager');
La Smith = Create Employeee ('Smith', 'Video Editor');
La Marie = Create Employeee ('Marie', 'Content Writer');

Etter å ha gjort det, vil vi påkalle showInfo () -funksjonen for hvert av ansattobjektet:

konsoll.Logg (Alex.showInfo ());
konsoll.Logg (Smith.showInfo ());
konsoll.Logg (Marie.showInfo ());

Utførelse av det gitte JavaScript -programmet betyr at vi har opprettet ansattes objekt ved hjelp av fabrikkfunksjoner:

Minneplassproblem med fabrikkfunksjoner

I forrige eksempel, når du oppretter et ansattobjekt og lagrer det i en variabel, trenger det objektet minneplass, og dermed bremse kodeytelsen. Du kan imidlertid unngå dette problemet ved å fjerne "showInfo ()”Metode fra fabrikkfunksjonen og lagring av den i en annen variabel.

Fra programmet vårt vil vi fjerne "showInfo ()”Metode fra fabrikkfunksjonen Create Employee () og lagre den i en egen variabel som heter“x”:

funksjon CreateEmployee (navn, betegnelse)
komme tilbake
Navn: Navn,
Betegnelse: Betegnelse,


const x =
showInfo ()
Returner dette.Navn + 'er en' + dette.betegnelse;

Deretter vil vi lage to ansattes objekter, “Alex”Og“Smith,”Og før du påkaller“showInfo ()”Metode for disse objektene vil vi tilordne objektmetoden”x”Til ansattobjektet på følgende måte:

La Alex = Create Employeee ('Alex', 'Manager');
La Smith = Create Employeee ('Smith', 'Video Editor');
Alex.showInfo = x.showInfo;
Smith.showInfo = x.showInfo;
konsoll.Logg (Alex.showInfo ());
konsoll.Logg (Smith.showInfo ());

Her er utdataene vi fikk fra å utføre det ovennevnte programmet:

Imidlertid er den oppgitte tilnærmingen ikke skalerbar hvis du vil legge til flere metoder for et ansattobjekt fordi du må tilordne dem individuelt. Hvis det er tilfelle, bør du bruke “Gjenstand.skape()”Metode i JavaScript -programmet ditt.

Gjenstand.Opprett () Metode i JavaScript

Objektet.Opprett () Metode i JavaScript Oppretter et nytt objekt basert på det eksisterende objektet som den nye objektprototypen.

Vi kan bruke objektet.Opprett () -metode på denne måten:

const x =
showInfo ()
Returner dette.Navn + 'er en' + dette.betegnelse;

funksjon CreateEmployee (navn, betegnelse)
La ansatt = objekt.opprette (x);
ansatt.Navn = navn;
ansatt.betegnelse = betegnelse;
returnert ansatt;

Deretter vil vi opprette våre ansatteobjekter og deretter påkalle metoden for "x”Objekt som er showInfo ():

La Alex = Create Employeee ('Alex', 'Manager');
La Smith = Create Employeee ('Smith', 'Video Editor');
konsoll.Logg (Alex.showInfo ());
konsoll.Logg (Smith.showInfo ());

Utgangen vi har sett i konsollen betyr at programmet vårt fungerer helt bra med objektet.Opprett () Metodeimplementering.

Konklusjon

I JavaScript er en fabrikkfunksjon en type funksjon som returnerer et objekt og ikke krever bruk av ny nøkkelord. Det kan brukes til å initialisere et objekt, lik en konstruktør. Det regnes også som et nyttig verktøy som tillater deg å produsere flere objektforekomster raskt. Denne oppskrivningen diskuterte fabrikkfunksjoner i JavaScript ved hjelp av passende eksempler.