JavaScript offre molte possibilità per la creazione e manipolazione di oggetti. L'uso tradizionale di classi e prototipi è ampiamente diffuso, ma ci sono anche approcci alternativi che spesso sono più flessibili e semplici. Questo tutorial ti mostra come creare oggetti efficaci in JavaScript senza l'uso di classi. Utilizzeremo l'approccio di Douglas Crockford, che si basa sulla creazione di oggetti basata su funzioni e offre una prospettiva interessante su Es6 e versioni successive.
Principali scoperte
- Gli oggetti possono essere creati senza l'uso di classi e this
- La creazione di oggetti basata su funzioni consente strutture di codice più flessibili e leggibili
- Lo destructuring degli oggetti rende la gestione più efficace e semplice
Guida passo-passo per la creazione di oggetti senza classi
Inizia creando una funzione che restituisce un oggetto. Puoi farlo utilizzando una sintassi di funzione di base.

In questo esempio definiamo una funzione createShape. In questa funzione creiamo un nuovo oggetto che ha diverse proprietà, come id, x e y. Puoi anche aggiungere altri metodi per espandere la funzionalità dell'oggetto.
Assicurati di passare i parametri che definiscono l'oggetto alla funzione. In questo modo puoi creare un'istanza dell'oggetto con attributi specifici.
Per rendere l'oggetto utile, puoi anche definire metodi che sono integrati nell'oggetto. Ad esempio, potresti aggiungere un metodo print che restituisce le proprietà dell'oggetto.

Qui estendi la funzione createShape con il metodo print. Assicurati di implementare correttamente il metodo per garantire che possa riferirsi alle proprietà dell'oggetto.
Un altro elemento è l'implementazione di un metodo move. Questo metodo può essere utilizzato per modificare le coordinate x e y dell'oggetto. Non dimenticare di nominare i parametri in modo chiaro per evitare malintesi.
Puoi anche utilizzare funzioni per lo destructuring degli oggetti. Invece di passare i parametri singolarmente, passa semplicemente un oggetto e utilizza lo destructuring per estrarre le proprietà.
Questa tecnica rende il tuo codice non solo più leggibile, ma anche più flessibile. Puoi facilmente aggiungere nuovi parametri e rimuovere parzialmente quelli esistenti senza dover riscrivere tutta la funzionalità.
Se stai considerando di integrare anche altre funzioni, potresti definire una seconda funzione createBaseShape che implementa alcuni comportamenti di base e viene chiamata dal primo oggetto.
Screenshot_目330
Con l'approccio avanzato puoi accedere a printBase o ad altre funzioni e utilizzarle senza dover usare this o simili.
Come ultima miglioria, puoi congelare l'oggetto per garantire che le sue proprietà non possano essere modificate dopo la creazione. Questo avviene utilizzando il metodo Object.freeze().
Queste tecniche dimostrano che ci sono molte possibilità per creare e gestire oggetti in JavaScript senza fare riferimento al modello delle classi.
Riassunto – Oggetti senza classi in JavaScript
In questo tutorial hai imparato come creare oggetti in JavaScript in modo efficace senza classi. L'approccio della creazione di oggetti basata su funzioni ti offre molta flessibilità e controllo. Attraverso vari metodi come lo destructuring e Object.freeze, hai la possibilità di sviluppare strutture robuste e manutenibili che avvantaggiano il tuo codice.
Domande frequenti
Come creo un oggetto in JavaScript senza classi?Puoi definire una funzione che genera e restituisce un nuovo oggetto.
Quali sono i vantaggi della creazione di oggetti basata su funzioni?Consente una gestione più flessibile degli oggetti, semplici estensioni tramite destructuring e previene modifiche indesiderate tramite Object.freeze.
Posso definire metodi nelle funzioni di creazione di oggetti?Sì, puoi generare metodi direttamente nella funzione di ritorno dell'oggetto.
Questo approccio sostituisce completamente il modello tradizionale delle classi?È un metodo alternativo che può essere più utile in molti casi specifici, ma non pretende di sostituire completamente le classi.