rezumat: în acest tutorial, veți afla despre funcțiile JavaScript factory care sunt funcții care returnează obiecte.
Introducere în funcțiile din fabrică în JavaScript
o funcție din fabrică este o funcție care returnează un obiect nou. Următoarele creează un obiect persoană numit john
:
Code language: JavaScript (javascript)
ieșire:
obiectul john
are două proprietăți: firstName
și lastName
și o metodă getFullName()
care returnează numele complet.
să presupunem că trebuie să creați un alt obiect similar numit jane
, puteți duplica codul după cum urmează:
Code language: JavaScript (javascript)
ieșire:
obiectul jane
are aceleași proprietăți și metode ca și obiectul john
.
cu cât doriți să creați mai mult obiect, cu atât trebuie să copiați mai mult cod duplicat.
pentru a evita copierea aceluiași cod din nou și din nou, puteți dezvolta o funcție care creează obiectul person
:
Code language: JavaScript (javascript)
când o funcție creează un obiect, se numește funcție din fabrică. createPerson()
este o funcție din fabrică, deoarece returnează un nou obiect person
.
următorul cod folosește funcția din fabrică createPerson()
pentru a crea două obiecte john
și jane
:
Code language: JavaScript (javascript)
cu funcția din fabrică, creați orice număr de obiecte person
pe care le doriți fără a dubla codul.
când creați un obiect, acel obiect necesită un spațiu în memorie. Dacă aveți o mie de obiecte person
, aveți nevoie de o mie de spații în memorie pentru a stoca aceste obiecte. Cu toate acestea, aceste obiecte personale au aceeași metodă getFullName()
.
pentru a evita repetarea aceleiași funcții getFullName()
în memorie, puteți elimina metoda getFullName()
din obiectul person
:
Code language: JavaScript (javascript)
și mutați această metodă într-un alt obiect:
Code language: JavaScript (javascript)
și înainte de a apela metoda getFullName()
pe obiectul person
, puteți atribui metoda obiectului behavior
obiectului person
după cum urmează:
Code language: JavaScript (javascript)
va fi mai dificil dacă aveți multe metode și trebuie să le atribuiți manual.
acesta este motivul pentru care metoda Object.create()
intră în joc.
Obiectul.create() method
metoda Object.create()
creează un obiect nou folosind un obiect existent ca prototip al noului obiect:
Code language: CSS (css)
Deci, puteți utiliza Object.create()
după cum urmează:
Code language: JavaScript (javascript)
acum, Puteți crea person
obiecte și apelați metodele obiectului behavior
:
Code language: JavaScript (javascript)
codul funcționează perfect. Cu toate acestea, în practică, veți vedea rareori funcțiile din fabrică. În schimb, veți vedea constructorii de funcții sau clasele.
rezumat
- o funcție din fabrică este o funcție care returnează un obiect nou.
- utilizați
Object.create()
pentru a crea un obiect folosind un obiect existent ca prototip.
- a fost util acest tutorial ?
- nu