Funzioni di fabbrica in JavaScript

Funzioni di fabbrica in JavaScript
Durante la scrittura di un programma, ci sono situazioni in cui si desidera aggiungere rapidamente istanze più di un oggetto. Funzioni di fabbrica In JavaScript sono usati esplicitamente per questo scopo. Una fabbrica del mondo reale può produrre massicciamente e rapidamente più copie di un oggetto; Lo stesso vale per le funzioni di fabbrica.

In JavaScript, una funzione di fabbrica restituisce un oggetto che può essere riutilizzato per realizzare più istanze dello stesso oggetto. Può inoltre accettare argomenti che consentono di personalizzare l'oggetto restituito.

Questo articolo discuterà le funzioni di fabbrica in JavaScript con l'aiuto di esempi appropriati. Quindi iniziamo!

Funzione di fabbrica in javascript

Le funzioni di fabbrica JavaScript hanno la stessa funzionalità di una funzione di classe o un costruttore; Tuttavia, queste funzioni non usano il "nuovo"Parola chiave durante la creazione di un'istanza dell'oggetto e restituire un oggetto che comprende il metodo o i valori aggiunti.

Quindi, se hai una logica complessa e hai bisogno di costruire ripetutamente diverse istanze di oggetti, aggiungere quella logica una volta in una funzione di fabbrica e quindi utilizzarla per la creazione di oggetti.

Esempio: come utilizzare le funzioni di fabbrica in JavaScript
Prima di tutto, creeremo un "dipendente1"Oggetto con due proprietà:"nome" E "designazione":

let Employee1 =
Nome: 'Alex',
Designazione: "Manager" ,
showinfo ()
Restituisci questo.nome + 'è un' + questo.designazione;

;
console.registro (dipendente1.showinfo ());

Abbiamo anche aggiunto un “showinfo ()"Metodo che emetterà le proprietà dell'oggetto in un formato di stringa.

Dai un'occhiata all'output del metodo ShowInfo () per "dipendente1"Oggetto:

Ora, diciamo che vuoi creare un altro oggetto "dipendente2"Per un dipendente diverso. A tale scopo, devi scrivere lo stesso codice durante la modifica dei valori delle proprietà in base alle tue esigenze:

let Employee2 =
Nome: "Stepheny",
Designazione: "Editor video" ,
showinfo ()
Restituisci questo.nome + 'è un' + questo.designazione;

;
console.registro (dipendente2.showinfo ());

È possibile seguire la procedura di cui sopra per la creazione di alcuni oggetti dei dipendenti. Ma cosa succede se vuoi creare 100 oggetti dei dipendenti? In tal caso, la creazione di ciascun oggetto separatamente mentre scrivi lo stesso codice più volte consumerà molto tempo, sforzo e potrà rendere il tuo codice complesso per gestire.

Puoi utilizzare una funzione di fabbrica per aiutarti a evitare la duplicazione del codice. Crea un oggetto senza immergersi in classi complesse o usare il "nuovo" parola chiave.

Ora creeremo una funzione di fabbrica JavaScript "Createmployee"Per la creazione di oggetti dei nostri dipendenti:

funzione createemployee (nome, designazione)
ritorno
Nome: nome,
Designazione: designazione,
showinfo ()
Restituisci questo.nome + 'è un' + questo.designazione;

La funzione di fabbrica di cui sopra restituirà un oggetto che comprende i valori della proprietà passati come argomenti.

Nel prossimo passaggio, creeremo tre oggetti dei dipendenti chiamati come Alex, fabbro, E Marie:

let alex = createmployee ('alex', 'manager');
let Smith = Creaployee ('Smith', 'Video Editor');
let marie = createemployee ('marie', 'writer di contenuti');

Dopo averlo fatto, invocheremo la funzione ShowInfo () per ciascuno degli oggetti dei dipendenti:

console.Registro (Alex.showinfo ());
console.Registro (Smith.showinfo ());
console.Registro (Marie.showinfo ());

L'esecuzione del programma JavaScript dato significa che abbiamo creato con successo l'oggetto dei dipendenti con l'aiuto delle funzioni di fabbrica:

Problema di spazio di memoria con le funzioni di fabbrica

Nell'esempio precedente, quando si crea un oggetto dipendente e lo memorizzi in una variabile, quell'oggetto ha bisogno di spazio di memoria, rallentando quindi le prestazioni del codice. Tuttavia, puoi evitare questo problema rimuovendo il "showinfo ()"Metodo dalla funzione di fabbrica e memorizzandolo in un'altra variabile.

Dal nostro programma, rimuoveremo il "showinfo ()"Metodo dalla funzione di fabbrica CreateEmployee () e lo memorizza in una variabile separata denominata"X":

funzione createemployee (nome, designazione)
ritorno
Nome: nome,
Designazione: designazione,


const x =
showinfo ()
Restituisci questo.nome + 'è un' + questo.designazione;

Successivamente, creeremo due oggetti dei dipendenti, "Alex" E "fabbro,"E prima di invocare il"showinfo ()"Metodo per questi oggetti, assegneremo il metodo oggetto"X"All'oggetto dipendente nel modo seguente:

let alex = createmployee ('alex', 'manager');
let Smith = Creaployee ('Smith', 'Video Editor');
Alex.ShowInfo = x.showinfo;
fabbro.ShowInfo = x.showinfo;
console.Registro (Alex.showinfo ());
console.Registro (Smith.showinfo ());

Ecco l'output che abbiamo ottenuto dall'esecuzione del programma di cui sopra:

Tuttavia, l'approccio fornito non è scalabile se si desidera aggiungere più metodi per un oggetto dipendente perché è necessario assegnarli individualmente. In tal caso, dovresti utilizzare "Oggetto.creare()"Metodo nel tuo programma JavaScript.

Oggetto.Crea () metodo in JavaScript

L'oggetto.Il metodo Create () in JavaScript crea un nuovo oggetto in base all'oggetto esistente come nuovo prototipo di oggetti.

Possiamo usare l'oggetto.Crea () metodo in questo modo:

const x =
showinfo ()
Restituisci questo.nome + 'è un' + questo.designazione;

funzione createemployee (nome, designazione)
Lascia che dipendente = oggetto.creare (x);
dipendente.nome = nome;
dipendente.designazione = designazione;
restituire dipendente;

Successivamente, creeremo i nostri oggetti dei dipendenti e poi invocheremo il metodo di "X"Oggetto che è showInfo ():

let alex = createmployee ('alex', 'manager');
let Smith = Creaployee ('Smith', 'Video Editor');
console.Registro (Alex.showinfo ());
console.Registro (Smith.showinfo ());

L'output che abbiamo visto nella console significa che il nostro programma funziona perfettamente con l'oggetto.Crea () Implementazione del metodo.

Conclusione

In JavaScript, una funzione di fabbrica è un tipo di funzione che restituisce un oggetto e non richiede l'uso di nuovo parola chiave. Può essere usato per l'inizializzazione di un oggetto, simile a un costruttore. È anche considerato uno strumento utile che consente di produrre rapidamente più istanze di oggetti. Questo articolo ha discusso delle funzioni di fabbrica in JavaScript con l'aiuto di esempi appropriati.