Funkcje fabryczne w JavaScript

Funkcje fabryczne w JavaScript
Podczas pisania programu są sytuacje, w których chcesz szybko dodać wiele instancji obiektu. Funkcje fabryczne W JavaScript są używane wyraźnie do tego celu. Rzeczywistą fabrykę może masowo i szybko wytwarzać wiele kopii przedmiotu; To samo dotyczy funkcji fabrycznych.

W JavaScript funkcja fabryczna zwraca obiekt, który można ponownie wykorzystać do tworzenia wielu wystąpień tego samego obiektu. Może dodatkowo zaakceptować argumenty, które pozwalają dostosować zwrócony obiekt.

W tym spisie omówi funkcje fabryczne w JavaScript za pomocą odpowiednich przykładów. A więc zacznijmy!

Funkcja fabryczna w JavaScript

Funkcje fabryczne JavaScript mają tę samą funkcję, jaką ma funkcję klasy lub konstruktor; Jednak funkcje te nie używają „nowy„Słowo kluczowe podczas tworzenia instancji obiektu i zwracanie obiektu obejmującego dodaną metodę lub wartości.

Tak więc, jeśli masz złożoną logikę i potrzebujesz wielokrotnego konstruowania kilku instancji obiektów, dodaj tę logikę raz w funkcji fabrycznej, a następnie wykorzystaj ją do tworzenia obiektów.

Przykład: Jak korzystać z funkcji fabrycznych w JavaScript
Przede wszystkim stworzymy „Pracownik 1„Obiekt o dwóch właściwościach:„nazwa" I "Przeznaczenie”:

Niech pracownik1 =
Nazwa: „Alex”,
Oznaczenie: „Menedżer” ,
showinfo ()
Zwróć to.Nazwa + 'to' + to.Przeznaczenie;

;
konsola.Log (pracownik 1.showinfo ());

Dodaliśmy również „showinfo ()„Metoda, która wyświetli właściwości obiektu w formacie ciągów.

Sprawdź wyjście metody showinfo () dla „Pracownik 1" obiekt:

Powiedzmy teraz, że chcesz stworzyć inny obiekt „pracownik2„Dla innego pracownika. W tym celu musisz napisać ten sam kod, zmieniając wartości właściwości zgodnie z Twoimi wymaganiami:

Niech pracownik2 =
Nazwa: „Stepheny”,
Oznaczenie: „Edytor wideo” ,
showinfo ()
Zwróć to.Nazwa + 'to' + to.Przeznaczenie;

;
konsola.Log (pracownik2.showinfo ());

Możesz postępować zgodnie z powyższą procedurą tworzenia kilku obiektów pracowników. Ale co, jeśli chcesz utworzyć 100 obiektów pracowników? W takim przypadku tworzenie każdego obiektu osobno podczas pisania tego samego kodu, będzie pochłonąć dużo czasu, wysiłku i może sprawić, że kod jest skomplikowany.

Możesz skorzystać z funkcji fabrycznej do pomocy, aby uniknąć powielania kodu. Tworzy obiekt bez nurkowania w złożonych klasach lub używając „nowy”Słowo kluczowe.

Teraz utworzymy funkcję fabryki JavaScript „UtwórzEmployee„Do tworzenia obiektów pracowników:

funkcja createEmployee (nazwa, oznaczenie)
powrót
Nazwa nazwa,
Oznaczenie: Oznaczenie,
showinfo ()
Zwróć to.Nazwa + 'to' + to.Przeznaczenie;

Powyższa funkcja fabryczna zwróci obiekt zawierający wartości właściwości przekazane jako argumenty.

W następnym kroku utworzymy trzy obiekty pracowników wymienione jako Alex, Kowal, I Marie:

niech Alex = CreateEmployee („Alex”, „Manager”);
Let Smith = CreateEmployee („Smith”, „Edytor wideo”);
Let Marie = CreateEmployee („Marie”, „Content Writer”);

Po tym powołamy się na funkcję showinfo () dla każdego obiektu pracownika:

konsola.Log (Alex.showinfo ());
konsola.Log (Smith.showinfo ());
konsola.Log (Marie.showinfo ());

Wykonanie danego programu JavaScript oznacza, że ​​pomyślnie utworzyliśmy obiekt pracownika za pomocą funkcji fabrycznych:

Problem przestrzeni pamięci z funkcjami fabrycznymi

W poprzednim przykładzie, gdy tworzysz obiekt pracownika i przechowujesz go w zmiennej, obiekt potrzebuje miejsca pamięci, a tym samym spowolnić wydajność kodu. Możesz jednak uniknąć tego problemu, usuwając „showinfo ()”Metoda z funkcji fabrycznej i przechowywanie jej w innej zmiennej.

Z naszego programu usuniemy „showinfo ()„Metoda z funkcji Fabryki CreateEmployee () i przechowuj ją w osobnej zmiennej o nazwie„X”:

funkcja createEmployee (nazwa, oznaczenie)
powrót
Nazwa nazwa,
Oznaczenie: Oznaczenie,


const x =
showinfo ()
Zwróć to.Nazwa + 'to' + to.Przeznaczenie;

Następnie utworzymy dwa obiekty pracowników, „Alex" I "Kowal,”I przed wywołaniem„showinfo ()„Metoda dla tych obiektów przypisamy metodę obiektu„X„Do obiektu pracownika w następujący sposób:

niech Alex = CreateEmployee („Alex”, „Manager”);
Let Smith = CreateEmployee („Smith”, „Edytor wideo”);
Alex.showinfo = x.showinfo;
Kowal.showinfo = x.showinfo;
konsola.Log (Alex.showinfo ());
konsola.Log (Smith.showinfo ());

Oto dane wyjściowe, które otrzymaliśmy z realizacji powyższego programu:

Jednak dostarczone podejście nie jest skalowalne, jeśli chcesz dodać wiele metod dla obiektu pracownika, ponieważ musisz je przypisać indywidualnie. W takim przypadku powinieneś użyć „Obiekt.tworzyć()„Metoda w programie JavaScript.

Obiekt.Metoda create () w JavaScript

Obiekt.Metoda create () w JavaScript tworzy nowy obiekt na podstawie istniejącego obiektu jako prototypu nowego obiektu.

Możemy użyć obiektu.Metoda create () w ten sposób:

const x =
showinfo ()
Zwróć to.Nazwa + 'to' + to.Przeznaczenie;

funkcja createEmployee (nazwa, oznaczenie)
Niech pracownik = obiekt.Utwórz (x);
pracownik.Nazwa = nazwa;
pracownik.Oznaczenie = oznaczenie;
Pracownik powrotu;

Następnie utworzymy nasze obiekty pracowników, a następnie powołamy się na metodę „X„Obiekt, który jest showinfo ():

niech Alex = CreateEmployee („Alex”, „Manager”);
Let Smith = CreateEmployee („Smith”, „Edytor wideo”);
konsola.Log (Alex.showinfo ());
konsola.Log (Smith.showinfo ());

Wyjście, które widzieliśmy w konsoli, oznacza, że ​​nasz program działa doskonale z obiektem.Utwórz () Wdrożenie metody.

Wniosek

W JavaScript funkcja fabryczna jest rodzajem funkcji, która zwraca obiekt i nie wymaga użycia nowy Słowo kluczowe. Można go użyć do inicjalizacji obiektu, podobnego do konstruktora. Jest również uważane za przydatne narzędzie, które pozwala szybkie tworzenie wielu instancji obiektów. Ten zapis omówił funkcje fabryczne w JavaScript za pomocą odpowiednich przykładów.