Am văzut că putem avea mai multe valori grupate în șiruri, fiecare fiind identificată prin poziția sa în șir.
Dar, poate dorim să grupăm valori de tipuri diferite și/sau să nu știm exact pe ce poziție am pus o anumită valoare. Sunt cazuri în care este logic ca anumite valori să fie împreună. De exemplu, am putea avea o persoană pentru care dorim să știm numele și vârsta; numele ar fi un string, iar vârsta un număr întreg. Am putea lucra cu două variabile, dar nu ar exista nicio legătură clară între ele.
Dacă am complica puțin problema și am dori să creăm un șir de persoane, atunci am avea un șir de nume și un șir de vârste. Ar trebui să avem grijă ca, în cele două șiruri, numărul de ordine să fie același pentru o anumită persoană. Totuși, ar fi mult mai simplu să avem un șir de persoane, nu?
În JavaScript putem crea așa-numitele obiecte; un obiect poate avea diferite proprietăți. În cazul nostru am avea un obiect care reprezintă o persoană și obiectul respectiv ar avea două proprietăți: numele și vârsta.
Pentru a crea un obiect folosim acolade; între acolade vor apărea proprietățile separate prin virgule; o proprietate va avea o denumire și o valoare, acestea fiind separate prin semnul :. Un exemplu ar putea fi:
1 2 3 4 |
var persoana = { nume: "Dragos", varsta: 17 } |
Obiectul creat este persoana, iar proprietățile sale sunt nume și varsta. Pentru a folosi informațiile respective, le putem accesa folosind denumirea obiectului, urmat de semnul . și de denumirea proprietății:
1 2 |
alert(persoana.nume) alert(persoana.varsta) |
În același mod puteam și atribui noi valori proprietăților:
1 2 |
persoana.varsta = 18 alert(persoana.varsta) |
De fapt, pot fi adăugate și proprietăți noi:
1 2 |
persoana.oras = "Cluj" alert(persoana.oras) |
De fapt, dacă dorim putem porni chiar de la un obiect vid și să adăugăm proprietăți pe măsură ce avem nevoie de ele:
Să vedem cum ar arăta un program complet:
1 2 3 4 |
var persoana = {} persoana.nume = "Dragos" persoana.varsta = 17 alert(persoana.nume + ": " + persoana.varsta) |