PROGRAMMIAMO
JS - Oggetti
Definizione di oggetto

Oggi si parla spesso di Programmazione Orientata agli Oggetti (OOP, Object Oriented Programming)  come della tecnica più moderna e attuale per programmare, ma il concetto rimane abbastanza misterioso e nascosto dietro un complicato gergo da informatici.

Cos'è in effetti un oggetto (nel senso informatico del termine)? In realtà il programmatore (particolarmente quello alle prime armi) spesso usa gli oggetti senza neppure rendersene conto. Per esempio, quando scriviamo:

document.getElementById("pippo").value

stiamo facendo riferimento a un oggetto (quello con id="pippo") e a una sua proprietà (value). Allo stesso modo quando scriviamo:

window.alert("Ciao!")

stiamo usando l'oggetto window e il suo metodo alert (spesso, come abbiamo visto, si omette il nome dell'oggetto parent window e si scrive solo alert: quando non ci sono ambiguità nei nomi il JS consente di fare queste semplificazioni).

In modo molto semplice e generale possiamo definire un oggetto come qualcosa (un'entità) dotata di proprietà (ovvero di valori) e di metodi (ovvero di azioni). Il concetto è ripreso per analogia con gli oggetti della vita quotidiana. Per esempio un'automobile è un oggetto che ha diverse proprietà (cilindrata, colore, marca, modello, peso etc.): le proprietà sono evidentemente valori caratteristici dell'oggetto. I metodi sono invece le azioni che è possibile compiere sull'oggetto. Per esempio nel caso dell'automobile i metodi potrebbero essere: avvia(), spegni(), frena() eccetera.

Le proprietà sono come le variabili, cioè ad esse è possibile assegnare dei valori. I metodi sono invece delle funzioni (da qui l'uso delle parentesi tonde accanto al nome), cioè eseguono delle azioni (sono dei sottoprogrammi). Per esempio window.alert() è un metodo appartenente all'oggetto window, mentre window.location è una proprietà dello stesso oggetto. Si noti il punto che separa il nome dell'oggetto dalla sua proprietà o metodo:

oggetto.proprietà

oggetto.metodo()

Dunque, riassumendo, un oggetto è una collezione di variabili (proprietà) e di metodi (funzioni), che si riferiscono tutti alla stessa cosa (l'oggetto stesso, appunto!).

Perché complicarsi la vita? A cosa servono gli ogggetti

Gli informatici dicono che la programmazione ad oggetti è un paradigma di programmazione. In parole povere paradiga significa "tecnica, metodo": cioè la programmazione ad oggetti è una tecnica per scrivere i programmi. Un po' come l'uso delle funzioni, per dividere il codice in tante parti più piccole e più facilmente gestibili: anche questo è un paradigma (=tecnica) di programmazione (si parla infatti a questo proposito di programmazione procedurale).

Come tutte le tecniche, anche la programmazione ad oggetti è utile se riesce a semplificare e a rendere più efficiente il lavoro del programmatore. Facciamo di nuovo riferimento alla programmazione procedurale, cioè all'uso delle funzioni: questa tecnica è utile perché permette di scomporre il codice in porzioni più piccole e riutilizzabili.

Fino agli anni '80 del secolo scorso quasi nessuno aveva sentito parlare di programmazione ad oggetti. Erano pochissimi i linguaggi di programmazione che implementavano questa tecnica e per lo più erano utilizzati solo da pochi specialisti per ricerche e lavori sperimentali. Negli anni '80 e ancor più nei decenni successivi invece la programmazione ad oggetti ha conosciuto un vero e proprio boom. Era diventata di moda e quelli che continuavano a programmare alla vecchia maniera erano considerati conservatori e antiquati.

Parte della ragione di questo improvviso successo è stato lo sviluppo del linguaggio C++ (1985), una evoluzione del linguaggio C, creata apposta per includere gli oggetti. All'epoca il C (senza oggetti) era già un linguaggio di programmazione molto diffuso in svariati ambiti (dalla didattica, alla ricerca, alla programmazione in ambito industriale) e la sua evoluzione in un linguaggio ad oggetti (il C++ appunto) portò alla conversione di molti programmatori al nuovo paradigma di programmazione.

Un'altra ragione del successo dei linguaggi di programmazione ad oggetto è stata lo sviluppo delle interfacce grafiche, cioè di programmi con i quali l'utente poteva interagire cliccando su pulsanti o icone etc. Non a caso i primi sistemi operativi che utilizzano il mouse nascono alla metà degli anni '80 (Apple 1984). Una diffusione ancora maggiore delle interfacce grafiche si ha con l'avvento di internet, dei browser e dei linguaggi di scripting (come il javascript). Cosa c'entrano le interfacce grafiche con gli oggetti? La risposta è che, usando il concetto di oggetto, è molto facile e naturale descrivere gli "oggetti" di una interfaccia grafica: un pulsante, una casella di testo, un menu a discesa diventano tutti altrettanti oggetti.

In realtà, come mostrano i semplici esempi che abbiamo proposto prima, è praticamente impossibile usare il Javascript senza utilizzare gli oggetti. Gli elementi html di una pagina, le finestre del browser, gli array, le date, le istruzioni di input output, le funzioni matematiche fanno tutti riferimento a una struttura ad oggetti.

Per queste ragioni il programmatore JS, anche se non utilizza tutte le potenzialità offerte dalla programmazione ad oggetti, non può ignorarne il significato e la struttura generale. Ed è proprio lo scopo di queste prossime lezioni: quello di offrire un'introduzione generale che permetta di usare in modo consapevole gli oggetti del JS, senza entrare nei dettagli ed approfondire i tecnicismi di questo argomento in realtà piuttosto complesso.

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it