Les objets

Un objet (object) peut contenir plusieurs valeurs sous forme de propriétés qui sont nommées à l’aide de chaînes de caractères.

A titre de comparaison, un tableau contient juste des valeurs et leur affecte un numéro.

var monFilm = {
   "titre" : "Titanic",
   "realisateur" : "James Cameron",
   "anneeDeSortie" : 1997,
   "triste" : true
};

L’objet est composé de couples clé/valeur (key/value). Chaque valeur est définie par une clé qui est toujours une chaîne.

Ces propriétés peuvent elle-même être considérées comme des objets, ce qui permet de regrouper beaucoup d’informations dans un format compact.

var monFilm = {
   "titre" : "Titanic",
   "realisateur" : {
       "prenom" : "James",
       "nom" : "Cameron",
       "dateDeNaissance" : "16 août 1954"
       },
   "anneeDeSortie" : 1997,
   "triste" : true
};

JSON

Le format de donnée JSON vient de cette manière d’ordonner les données. JSON veut simplement dire JavaScript Object Notation

Il existe une seconde méthode pour définir un objet mais elle oblige à définir un objet vide puis à le remplir. C’est souvent la méthode ci-dessus qui est utilisée par simplicité car elle permet de définir l’objet ET son contenu en une seule étape. Voici un exemple de cette seconde méthode :

var monFilm = new Object();

monFilm.titre = "Titanic";
monFilm.realisateur = "James Cameron";

Récupérer et manipuler les valeurs d’un objet

Afficher le contenu d’un objet se fait de la même manière que pour les variables ou les tableaux.

monFilm;
{titre: ‘Titanic’, realisateur: ‘James Cameron’, anneeDeSortie: 1997, triste: true}

Il y a deux manières d’aller chercher une des valeur définies dans l’objet : la notation avec point et la notation avec crochets. La notation avec point est certainement la plus simple mais, dans certains cas, il faudra utiliser les crochets pour que JavaScript ne confonde pas votre clé et une autre fonction.

monFilm.titre;
Titanic

monFilm["titre"];
Titanic

Pour modifier une valeur de l’objet, on se sert de sa key plutôt qu’un numéro comme on le faisait dans les tableaux.

monFilm.realisateur = "Steven Spielberg";

monFilm;
{titre: ‘Titanic’, realisateur: ‘Steven Spielberg’, anneeDeSortie: 1997, triste: true}