logo Dove iniziare Linguaggi Aiuto Blog
Home Dove iniziare Linguaggi Aiuto e Supporto Info e Blog

Metodi degli oggetti

A differenza dei metodi delle stringhe, dei metodi dei numeri e dei metodi degli array, gli oggetti non hanno metodi predefiniti. Invece, i metodi possono essere creati manualmente. Vediamo come creare e utilizzare i metodi degli oggetti e come funziona la proprietà this.

Funzioni

In JavaScript, le funzioni sono dei blocchi che contengono delle istruzioni. Ad esempio, questa è una funzione che esegue un alert:

function() {
  alert("Ciao");
};

Nota: vedremo le funzioni in dettaglio nella lezione delle funzioni.

Funzioni all'interno di un oggetto

Come abbiamo visto nella lezione sugli oggetti, in un oggetto si possono inserire anche le funzioni. Per inserirle, basta utilizzare la sintassi delle funzioni:

let macchina = {
  marca: "Fiat",
  alert: function() { alert("Targa:GA010AA"); }
};

Metodi degli oggetti

Abbiamo visto come inserire una funzione all'interno di un oggetto. In questo modo, abbiamo creato un metodo. Ora, possiamo utilizzarlo (e quindi attivare la funzione) con la sintassi oggetto.proprietà().

let macchina = {
  marca: "Fiat",
  alert: function() { alert("Targa:GA010AA"); }
};

macchina.alert();  // Risultato nell'alert: "Targa:GA010AA"

Possiamo anche creare un oggetto vuoto e aggiungere in seguito il metodo:

let macchina = { }
macchina.marca = "Fiat",
macchina.alert = function() { alert("Targa:GA010AA"); }

macchina.alert();  // Risultato nell'alert: "Targa:GA010AA"

Parola chiave this

this è una delle parole chiave più utilizzate in JavaScript. Questa parola può sottintendere il nome dell'oggetto in cui si trova. Ad esempio, se utilizziamo this all'interno dell'oggetto macchina, sottintenderà proprio macchina.

let macchina = {
  marca: "Fiat",
  alert: function() { alert(this.marca); }  // Si sottintende macchina.marca
};

macchina.alert();  // Risultato: "Fiat"

Come hai visto, la sintassi di this rimane la stessa degli oggetti: this.proprietà.

Esempio di utilizzo

Ma a cosa serve this nella realtà? Bhe, vediamo un esempio: chiediamo all'utente di inserire tramite prompt (che abbiamo visto nella lezione Prompt di stringhe e numeri) un dato all'interno di un oggetto. In particolare, il proprio nome. Poi, per visualizzarlo, aggiungiamo la funzione. Tuttavia, questa funzione viene aggiunta anche in altri oggetti con nome diverso. Quindi, il nome dell'oggetto non lo conosciamo.

let nome = prompt("Inserisci il tuo nome:");
let persona = { };
persona.nome = nome;
persona.alert = function() { alert(this.nome); };

persona.alert();

// Aggiungiamo la funzione in altri oggetti
persona1.alert = function() { alert(this.nome); };

Prova!Completa gli spazi vuoti con il testo appropriato.
let libro = {
  pagine: 223,
  alert: function() {alert(. );}
};

libro.alert(); // Risultato: 223