Podsumowanie: w tym samouczku dowiesz się o funkcjach fabrycznych JavaScript, które są funkcjami zwracającymi obiekty.
Wprowadzenie do funkcji fabrycznych w JavaScript
funkcja fabryczna jest funkcją zwracającą nowy obiekt. W następujący sposób tworzy się obiekt person o nazwie john
:
Code language: JavaScript (javascript)
wyjście:
obiekt john
posiada dwie właściwości: firstName
i lastName
oraz jedną metodę getFullName()
, która zwraca pełną nazwę.
Załóżmy, że musisz utworzyć inny podobny obiekt o nazwie jane
, możesz zduplikować kod w następujący sposób:
Code language: JavaScript (javascript)
wyjście:
obiekt jane
ma takie same właściwości i metody jak obiekt john
.
im więcej obiektów chcesz utworzyć, tym więcej duplikatów kodu musisz skopiować.
aby uniknąć wielokrotnego kopiowania tego samego kodu, możesz rozwinąć funkcję, która tworzy obiekt person
:
Code language: JavaScript (javascript)
gdy funkcja tworzy obiekt, nazywa się ją funkcją fabryczną. createPerson()
jest funkcją fabryczną, ponieważ zwraca nowy obiekt person
.
poniższy kod wykorzystuje funkcję fabryczną createPerson()
do utworzenia dwóch obiektów john
i jane
:
Code language: JavaScript (javascript)
funkcja factory umożliwia utworzenie dowolnej liczby obiektów person
bez powielania kodu.
podczas tworzenia obiektu obiekt ten wymaga miejsca w pamięci. Jeśli masz tysiąc obiektów person
, potrzebujesz tysiąca miejsc w pamięci do przechowywania tych obiektów. Te obiekty person mają jednak tę samą metodę getFullName()
.
aby uniknąć powtarzania tej samej funkcji getFullName()
w pamięci, można usunąć metodę getFullName()
z obiektu person
:
Code language: JavaScript (javascript)
i przenieś tę metodę do innego obiektu:
Code language: JavaScript (javascript)
a przed wywołaniem metody getFullName()
w obiekcie person
można przypisać metodę obiektu behavior
do obiektu person
w następujący sposób:
Code language: JavaScript (javascript)
będzie to trudniejsze, jeśli masz wiele metod i musisz przypisać je ręcznie.
dlatego w grę wchodzi metoda Object.create()
.
Obiekt.metoda create ()
metoda Object.create()
wytworzy nowy obiekt przy użyciu istniejącego obiektu jako prototyp nowego obiektu:
Code language: CSS (css)
możesz więc użyć Object.create()
w następujący sposób:
Code language: JavaScript (javascript)
teraz możesz tworzyć obiekty person
i wywoływać metody obiektu behavior
:
Code language: JavaScript (javascript)
kod działa idealnie. Jednak w praktyce rzadko zobaczysz funkcje fabryczne. Zamiast tego zobaczysz konstruktory funkcji lub klasy.
podsumowanie
- funkcja fabryczna jest funkcją zwracającą nowy obiekt.
- użyj
Object.create()
, aby utworzyć obiekt przy użyciu istniejącego obiektu jako prototypu.
- czy ten samouczek był pomocny ?
- YesNo