JavaScript oferă multe oportunități pentru crearea și manipularea obiectelor. Utilizarea tradițională a clasei și a prototipurilor este foarte răspândită, dar există și abordări alternative care sunt adesea mai flexibile și mai simple. Acest tutorial îți arată cum să creezi obiecte eficiente în JavaScript fără a folosi clase. Vom utiliza abordarea lui Douglas Crockford, care se bazează pe crearea de obiecte bazată pe funcții și oferă o perspectivă interesantă asupra Es6 și versiunilor ulterioare.
Cele mai importante concluzii
- Obiectele pot fi create fără a utiliza clase și this
- Crearea de obiecte bazată pe funcții permite structuri de cod mai flexibile și mai ușor de citit
- Prin destructurarea obiectelor, manipularea devine mai eficientă și mai simplă
Ghid pas cu pas pentru crearea de obiecte fără clase
Începe prin a crea o funcție care returnează un obiect. Poți face acest lucru folosind o sintaxă de bază a funcțiilor.

În acest exemplu, definim o funcție createShape. În această funcție, creăm un nou obiect care are diferite proprietăți, cum ar fi id, x și y. Poți adăuga și alte metode pentru a extinde funcționalitatea obiectului.
Asigură-te că transmiți parametrii care definesc obiectul funcției. Astfel, poți crea o instanță a obiectului cu atribute specifice.
Pentru a face obiectul util, poți defini, de asemenea, metode încorporate în obiect. De exemplu, ai putea adăuga o metodă print care să afișeze proprietățile obiectului.

Aici extinzi funcția createShape cu metoda print. Asigură-te că implementezi corect metoda pentru a te asigura că aceasta poate face referire la proprietățile obiectului.
Un alt element este implementarea unei metode move. Această metodă poate fi folosită pentru a schimba coordonatele x și y ale obiectului. Nu uita să denumești clar parametrii pentru a evita confuziile.
Poti folosi, de asemenea, funcții pentru destructurarea obiectelor. În loc să transmiți parametrii individual, pur și simplu transmite un obiect și folosește destructurarea pentru a extrage proprietățile.
Această tehnică nu doar că face codul tău mai ușor de citit, ci și mai flexibil. Poți adăuga cu ușurință noi parametri și elimina parțial parametrii existenți fără a fi nevoie să rescrii întreaga funcționalitate.
Când te gândești să integrezi și alte funcții, ai putea defini o a doua funcție createBaseShape, care implementează câteva comportamente de bază și este apelată de primul obiect.
Screenshot_目330
Cu abordarea extinsă, poți accesa și utiliza fie printBase, fie alte funcții, fără a fi nevoie să folosești this sau alte similarități.
Ca ultimă îmbunătățire, poți îngheța obiectul pentru a te asigura că proprietățile sale nu pot fi schimbate după crearea acestuia. Acest lucru se face prin utilizarea metodei Object.freeze().
Aceste tehnici subliniază că există multe modalități în care poți crea și gestiona obiecte în JavaScript fără a apela la modelul de clasă.
Rezumat – Obiecte fără clase în JavaScript
În acest tutorial, ai învățat cum să generezi obiecte în JavaScript eficient fără clase. Abordarea creării de obiecte bazate pe funcții îți oferă multă flexibilitate și control. Folosind diferite metode, cum ar fi destructurarea și Object.freeze, ai posibilitatea de a dezvolta structuri robuste și ușor de întreținut care aduc beneficii codului tău.
Întrebări frecvente
Cum creez un obiect în JavaScript fără clase?Poti defini o funcție care generează și returnează un obiect nou.
Care sunt avantajele creării de obiecte bazate pe funcții?Permite manipularea mai flexibilă a obiectelor, extensii simple prin destructurare și previne modificările nedorite prin Object.freeze.
Pot defini metode în funcțiile de creare a obiectelor?Da, poți crea metode direct în funcția de returnare a obiectului.
Înlocuiește această abordare complet modelul tradițional de clasă?Este o metodă alternativă care poate fi mai utilă în multe cazuri specifice, dar nu pretinde că înlocuiește complet clasele.