Summary: tässä opetusohjelmassa opit JavaScript factory-funktioista, jotka ovat objekteja palauttavia funktioita.
Johdatus Tehdasfunktioihin Javascriptissä
tehdasfunktio on funktio, joka palauttaa uuden objektin. Seuraava luo henkilöobjektin nimeltä john
:
Code language: JavaScript (javascript)
tuloste:
john
oliolla on kaksi ominaisuutta: firstName
ja lastName
, ja yksi menetelmä getFullName()
, joka palauttaa koko nimen.
Oletetaan, että sinun täytyy luoda toinen samanlainen olio nimeltään jane
, voit kopioida koodin seuraavasti:
Code language: JavaScript (javascript)
tuloste:
jane
oliolla on samat ominaisuudet ja menetelmä kuin john
oliolla.
mitä enemmän objektia haluat luoda, sitä enemmän kopioitavaa koodia tarvitset.
välttääksesi saman koodin kopioimisen uudelleen ja uudelleen, voit kehittää funktion, joka luo person
olion:
Code language: JavaScript (javascript)
kun funktio luo objektin, sitä kutsutaan tehdasfunktioksi. createPerson()
on tehdasfunktio, koska se palauttaa uuden person
olion.
seuraava koodi käyttää createPerson()
tehdasfunktiota kahden objektin luomiseen john
ja jane
:
Code language: JavaScript (javascript)
tehdas-toiminnolla luot minkä tahansa määrän haluamiasi person
objekteja ilman päällekkäistä koodia.
kun luodaan objekti, kyseinen objekti vaatii muistissa olevan tilan. Jos sinulla on tuhat person
objektia, tarvitset tuhat tilaa muistiin tallentaaksesi nämä esineet. Näillä henkilöobjekteilla on kuitenkin sama getFullName()
menetelmä.
jotta sama getFullName()
funktio ei toistuisi muistissa, person
oliosta voi poistaa getFullName()
– menetelmän:
Code language: JavaScript (javascript)
ja siirrä tämä menetelmä toiseen objektiin:
Code language: JavaScript (javascript)
ja ennen kuin getFullName()
– menetelmää kutsutaan person
– oliolle, behavior
– olion menetelmän voi määrittää person
– oliolle seuraavasti:
Code language: JavaScript (javascript)
se on vaikeampaa, jos sinulla on monia menetelmiä ja on määrittää ne manuaalisesti.
tästä syystä Object.create()
– menetelmä tulee kuvioihin.
Kohde.luo () menetelmä
Object.create()
menetelmä luo uuden objektin käyttämällä olemassa olevaa objektia uuden objektin prototyyppinä:
Code language: CSS (css)
voit siis käyttää Object.create()
: ää seuraavasti:
Code language: JavaScript (javascript)
nyt voit luoda person
olioita ja kutsua behavior
olion menetelmiä:
Code language: JavaScript (javascript)
koodi toimii ihan hyvin. Käytännössä tehtaan toimintoja näkee kuitenkin harvoin. Sen sijaan näet funktion rakentajat tai luokat.
Yhteenveto
- tehdasfunktio on funktio, joka palauttaa uuden objektin.
- käytä
Object.create()
objektin luomiseen käyttämällä olemassa olevaa objektia prototyyppinä.
- oliko tästä opetuksesta apua ?
- YesNo