"Sono stato bocciato a parecchi esami. Un mio amico invece, li ha passati tutti a pieni voti. Ora è ingegnere e lavora in Microsoft. Io sono il proprietario."  - Bill Gates  •  "Se riesco a fare qualcosa in 10 minuti, è perché ho passato anni a studiarlo."  - Bill Gates  •  "Il vostro lavoro riempirà gran parte della vostra vita, e l'unico modo per essere veramente soddisfatti è fare ciò che ritenete sia un grande lavoro."  - Steve Jobs  •  "Siate affamati. Siate folli."  - Steve Jobs  •  

cinque 

ZERO

{JS} Gestire gli oggetti

home / javascript /

Lucio Paolo Asciolla

Senior Full Stack Developer

Abbiamo già visto nel precedente articolo alcune delle operazioni possibili con gli oggetti ed in generale con la programmazione OOP.

document.write(x);

Questa stringa di codice, utilizzata per stampare a video, assume tutto un altro aspetto.

document(oggetto).write(metodo)(x(parmentri))

Di fatto document è un oggetto e write un metodo di document.
write, in quanto metodo, contiene una funzione predefinita a puoi poter passare dei dati/parametri.

var auto = {
marca : "Bugatti"
}

document.write(auto.marca);

In questo esempio grazie al metodo write contenuto in document stampiamo a video la proprietà marca, quindi Bugatti, contenuto nell'oggetto auto.

JavaScript ci mette quindi a disposizione una serie di diversi oggetti predefiniti che risultano molto comodi per le più comuni attività di programmazione.

Operazioni possibili con gli oggetti

1. Creazione di un oggetto

var oggetto = { };

oggetto vuoto

var oggetto = { nome:"Luca, cognome:"Rossi" };

oggetto con proprietà

var oggetto = { "il_nome" : "Luca, "il_cognome" : "Rossi" };

oggetto con nomi delle proprietà che non segue le regole per i nomi delle variabili

var oggetto = new Object({ });

oggetto vuoto con sintassi alternativa*

2. Richiamare una proprietà di un oggetto

oggetto.nome

invocare valore contenuto nella proprietà dell'oggetto

var catturaInVriabile = oggetto.nome;

memorizzare il valore di una proprietà di un oggetto in una variabile

var catturaInVriabile = oggetto["nome"];

memorizzare il valore di una proprietà, che non segue le regole per i nomi delle variabili, di un oggetto in una variabile

3. Stampare a video il valore di una proprietà

doucment.write(oggetto.nome);

stampare valore della proprietà di un oggetto

document.write(oggetto["il_nome"];

stampare valore della proprietà di un oggetto che non segue le regole per i nomi delle variabili

4. Creare una nuova proprietà

oggetto.eta=30;

creazione/aggiunta per assegnazione di una nuova proprietà inedita "eta"

oggetto["la_sua_eta"]=30;

creazione/aggiunta per assegnazione di una nuova proprietà inedita "la_sua_eta", che non rispetta le regole per i nomi delle variabili

5. Cambiare valore ad una proprietà già esistente

oggetto.nome="Giovanni";

cambio/sovrascrittura valore della proprietà per assegnazione

6. Eliminare la proprietà di un oggetto

delete oggetto.eta;

cancellare una proprietà

7. Eliminare/azzerare il valore di una proprietà

oggetto.nome=null;
oggetto.cognome=undefined;

rendere nullo o indefinito il valore di una proprietà

8. Verificare l'esistenza di una proprietà

var verificaEsistenza = "nome" in oggetto;

Per verificare se un oggetto possiede o meno una specifica proprietà possiamo utilizzare l'operatore "in" che accetta due argomenti operandi.
Il risultato, che verrà memorizzato nella variabile "verificaEsistenza" sarà un valore booleano, ovvero "Vero/Falso".

8.1 Utilizzare l'operatore in all'interno di un costrutto If else
var oggetto = { };
oggetto.nome="Mario";
oggetto.cognome="Rossi";

var risultato;

if ("nome" in oggetto) {
risultato="Esistente";
document.write(risultato);
}else{
risultato="Inesistente";
document.write(risultato);
}
Note: il nome della proprietà è da indicare tra i doppi apici " " 
          L'operatore in restituisce true anche se la proprietà non è diretta ma è comunque presente nella catena di prototipi dell'oggetto
8.2 *Verficare l'esistenza di una proprietà con il metodo hasOwnProperty()

Il metodo hasOwnProperty() restituisce true solo se la proprietà appartiene direttamente all'oggetto. Mentre, l'operatore in restituisce true anche se la proprietà non è diretta ma è comunque presente nella catena di prototipi dell'oggetto.

hasOwnProperty() è un metodo dell'oggetto Object; è importate saperlo perchè quando noi creiamo un oggetto implicitamente lo stiamo utilizzando e con esso accediamo a tutti i suoi metodi

var oggetto = { };

/* E' equivalente a creare l'oggetto con la seguente scritta */

var oggetto = new Object({});
Come è possibile utilizzarlo
var oggeto = new Object({
  nome: "Mario",
  cognome: "Rossi"  
});
var verificaEsistenzaNome= oggetto.hasOwnProperty("nome");
var verificaEsistenzaCognome= oggetto.hasOwnProperty("cognome");
if (oggetto.hasOwnProperty("nome")) {
  ....
}

Link utili
Html.it
Mrw.it