Funciones de fábrica en JavaScript

Funciones de fábrica en JavaScript
Mientras escribe un programa, hay situaciones en las que desea agregar múltiples instancias de un objeto rápidamente. Funciones de fábrica en Javascript se utilizan explícitamente para este propósito. Una fábrica del mundo real puede producir múltiples copias de un elemento de manera masiva y rápida de un artículo; Lo mismo ocurre con las funciones de fábrica.

En JavaScript, una función de fábrica devuelve un objeto que se puede reutilizar para hacer múltiples instancias del mismo objeto. Además, puede aceptar argumentos que le permiten personalizar el objeto devuelto.

Este artículo discutirá las funciones de fábrica en JavaScript con la ayuda de ejemplos apropiados. Entonces, comencemos!

Función de fábrica en JavaScript

Las funciones de fábrica de JavaScript tienen la misma funcionalidad que tiene una función de clase o un constructor; Sin embargo, estas funciones no usan el "nuevoPalabra clave "Al crear una instancia de objeto y devolver un objeto que comprende el método o los valores agregados.

Entonces, si tiene una lógica compleja y necesita construir varias instancias de objetos repetidamente, agregue esa lógica una vez en una función de fábrica y luego utilícelo para crear objetos.

Ejemplo: Cómo usar funciones de fábrica en JavaScript
En primer lugar, crearemos un "empleado1"Objeto que tiene dos propiedades:"nombre" y "designación":

Deje que el empleado1 =
Nombre: 'Alex',
Designación: 'Gerente' ,
mostrar información()
devolver esto.el nombre + 'es un' + esto.designación;

;
consola.Log (Empleado1.mostrar información());

También hemos agregado un "mostrar información()Método "que emitirá las propiedades del objeto en un formato de cadena.

Consulte la salida del método showInfo () para el "empleado1" objeto:

Ahora, digamos que quieres crear otro objeto "empleado2"Para un empleado diferente. Para este propósito, debe escribir el mismo código mientras cambia los valores de las propiedades de acuerdo con sus requisitos:

Deje que el empleado2 =
Nombre: 'Stepheny',
designación: 'editor de videos' ,
mostrar información()
devolver esto.el nombre + 'es un' + esto.designación;

;
consola.Log (Empleado2.mostrar información());

Puede seguir el procedimiento anterior para crear algunos objetos de empleados. Pero, ¿qué pasa si quieres crear 100 objetos de empleados?? En tal caso, crear cada objeto por separado mientras escribe el mismo código una y otra vez consumirá mucho tiempo, esfuerzo y puede hacer que su código complejo para manejar.

Puede utilizar una función de fábrica para ayudarlo a evitar la duplicación de código. Crea un objeto sin sumergirse en clases complejas o usar el "nuevoPalabra clave.

Ahora, crearemos una función de fábrica de JavaScript "Crear empleado"Para crear nuestros objetos de empleados:

función createEmployee (nombre, designación)
devolver
nombre nombre,
Designación: designación,
mostrar información()
devolver esto.el nombre + 'es un' + esto.designación;

La función de fábrica dada anteriormente devolverá un objeto que comprende los valores de la propiedad aprobados como argumentos.

En el siguiente paso, crearemos tres objetos de empleados nombrados como Alex, Herrero, y Marie:

Sea Alex = CreateEmployee ('Alex', 'Manager');
Let Smith = CreateEmployee ('Smith', 'Video Editor');
dejar marie = createEmployee ('marie', 'escritor de contenido');

Después de hacerlo, invocaremos la función showInfo () para cada uno de los objeto del empleado:

consola.Log (Alex.mostrar información());
consola.Log (Smith.mostrar información());
consola.Log (Marie.mostrar información());

La ejecución del programa JavaScript dado significa que hemos creado con éxito el objeto de empleado con la ayuda de funciones de fábrica:

Problema de espacio de memoria con funciones de fábrica

En el ejemplo anterior, cuando crea un objeto de empleado y lo almacena en una variable, ese objeto necesita espacio de memoria, por lo tanto, ralentiza el rendimiento del código. Sin embargo, puede evitar este problema eliminando el "mostrar información()Método de la función de fábrica y almacenarla en otra variable.

De nuestro programa, eliminaremos el "mostrar información()"Método de la función de fábrica createEmployee () y guárdela en una variable separada llamada"X":

función createEmployee (nombre, designación)
devolver
nombre nombre,
Designación: designación,


const x =
mostrar información()
devolver esto.el nombre + 'es un' + esto.designación;

A continuación, crearemos dos objetos de empleados ","Alex" y "Herrero,"Y antes de invocar el"mostrar información()"Método para estos objetos, asignaremos el método de objeto"X"Para el objeto del empleado de la siguiente manera:

Sea Alex = CreateEmployee ('Alex', 'Manager');
Let Smith = CreateEmployee ('Smith', 'Video Editor');
Alex.showinfo = x.mostrar información;
Herrero.showinfo = x.mostrar información;
consola.Log (Alex.mostrar información());
consola.Log (Smith.mostrar información());

Aquí está el resultado que obtuvimos al ejecutar el programa anterior:

Sin embargo, el enfoque proporcionado no es escalable si desea agregar múltiples métodos para un objeto de empleado porque debe asignarlos individualmente. Si ese es el caso, debe utilizar "Objeto.crear()"Método en su programa JavaScript.

Objeto.método create () en JavaScript

El objeto.El método create () en JavaScript crea un nuevo objeto basado en el objeto existente como el nuevo prototipo de objeto.

Podemos usar el objeto.Método create () de esta manera:

const x =
mostrar información()
devolver esto.el nombre + 'es un' + esto.designación;

función createEmployee (nombre, designación)
Deje que el empleado = objeto.crear (x);
empleado.nombre = nombre;
empleado.designación = designación;
Empleado de regreso;

A continuación, crearemos nuestros objetos de empleados y luego invocaremos el método de "X"Objeto que es showinfo ()::

Sea Alex = CreateEmployee ('Alex', 'Manager');
Let Smith = CreateEmployee ('Smith', 'Video Editor');
consola.Log (Alex.mostrar información());
consola.Log (Smith.mostrar información());

La salida que hemos visto en la consola significa que nuestro programa funciona perfectamente bien con el objeto.Implementación del método create ().

Conclusión

En JavaScript, una función de fábrica es un tipo de función que devuelve un objeto y no requiere el uso de nuevo palabra clave. Se puede usar para inicializar un objeto, similar a un constructor. También se considera una herramienta útil que le permite producir múltiples instancias de objetos rápidamente. Este artículo discutió las funciones de fábrica en JavaScript con la ayuda de ejemplos apropiados.