Les objets littéraux

Parent Previous Next


Les objets littéraux

S'il est possible d'accéder aux items d'un tableau via leur indice, il peut être pratique d'y accéder au moyen d'un identifiant. Par exemple, dans le tableau des prénoms, l'item appelé sister pourrait retourner la valeur « Laurence ». 

Pour ce faire, nous allons créer nous-mêmes un tableau sous la forme d'un objet littéral. Voici un exemple : 

Code : JavaScript

1

2

3

4

5

6

7

var family = {

   self:     'Sébastien',

   sister:   'Laurence',

   brother:  'Ludovic',

   cousin_1: 'Pauline',

   cousin_2: 'Guillaume'

};



Cette déclaration va créer un objet analogue à un tableau, excepté le fait que chaque item sera accessible au moyen d'un identifiant, ce qui donne schématiquement ceci : 

Identifiant

self

sister

brother

cousin_1

cousin_2

Donnée

Sébastien

Laurence

Ludovic

Pauline

Guillaume




La syntaxe d'un objet


Quelques petites explications s'imposent sur les objets, et tout particulièrement sur leur syntaxe. Précédemment dans ce chapitre vous avez vu que pour créer un array vide il suffisait d'écrire :

Code : JavaScript 

1

var myArray = [];



Pour les objets c'est à peu près similaire sauf que l'on met des accolades à la place des crochets :

Code : JavaScript 

1

var myObject = {};


Pour définir dès l'initialisation les items à ajouter à l'objet, il suffit d'écrire :

Code : JavaScript 

1

2

3

4

var myObject = {

   item1 : 'Texte 1',

   item2 : 'Texte 2'

};



Comme l'indique ce code, il suffit de taper l'identifiant souhaité suivi de deux points et de la valeur à lui attribuer. La séparation des items se fait comme pour un tableau, avec une virgule.

Accès aux items


Revenons à notre objet littéral : ce que nous avons créé est un objet, et les identifiants sont en réalité des propriétés, exactement comme la propriété length d'un tableau ou d'une chaîne de caractères. Donc, pour récupérer le nom de ma sœur, il suffit de faire : 

Code : JavaScript 

1

family.sister;



Il existe une autre manière, semblable à celle qui permet d'accéder aux items d'un tableau en connaissant l'indice, sauf qu'ici on va simplement spécifier le nom de la propriété : 

Code : JavaScript

1

family['sister'];



Cela va nous être particulièrement utile si l'identifiant est contenu dans une variable, comme ce sera le cas avec la boucle que nous allons voir après. Exemple : 

Code : JavaScript

1

2

3

var id = 'sister';

     

alert(family[id]); // Affiche : « Laurence »


Cette façon de faire convient également aux propriétés de tout objet. Ainsi, si mon tableau se nomme myArray, je peux faire myArray['length'] pour récupérer le nombre d'items.




Ajouter des items



Ici, pas de méthode push() car elle n'existe tout simplement pas dans un objet vide, il faudrait pour cela un tableau. En revanche, il est possible d'ajouter un item en spécifiant un identifiant qui n'est pas encore présent. Par exemple, si nous voulons ajouter un oncle dans le tableau : 

Code : JavaScript 

1

family['uncle'] = 'Didier'; // « Didier » est ajouté et est accessible via l'identifiant « uncle »


Ou bien sous cette forme :

Code : JavaScript 

1

family.uncle = 'Didier'; // Même opération mais d'une autre manière




Parcourir un objet avec for in



Il n'est pas possible de parcourir un objet littéral avec une boucle for. Normal, puisqu'une boucle for est surtout capable d'incrémenter une variable numérique, ce qui ne nous est d'aucune utilité dans le cas d'un objet littéral puisque nous devons posséder un identifiant. En revanche, la boucle for in se révèle très intéressante !

La boucle for in est l'équivalent de la boucle foreach du PHP : elle est très simple et ne sert qu'à une seule chose : parcourir un objet.

Le fonctionnement est quasiment le même que pour un tableau, excepté qu'ici il suffit de fournir une « variable clé » qui reçoit un identifiant (au lieu d'un index) et de spécifier l'objet à parcourir : 

Code : JavaScript 

1

2

3

4

5

for (var id in family) { // On stocke l'identifiant dans « id » pour parcourir l'objet « family »

       

   alert(family[id]);

               

}



Pourquoi ne pas appliquer le for in sur les tableaux avec index ?


Parce que les tableaux se voient souvent attribuer des méthodes supplémentaires par certains navigateurs ou certains scripts tiers utilisés dans la page, ce qui fait que la boucle for in va vous les énumérer en même temps que les items du tableau.
Il y a aussi un autre facteur important à prendre en compte : la boucle for in est plus gourmande qu'une boucle for classique. Vous trouverez plus d'informations à ce propos sur cet article provenant du site de développement d'Opera. Gardez cet article de côté, il ne pourra que vous resservir durant votre apprentissage.


Utilisation des objets littéraux



Les objets littéraux ne sont pas souvent utilisés mais peuvent se révéler très utiles pour ordonner un code. On les utilise aussi dans les fonctions : les fonctions, avec return, ne savent retourner qu'une seule variable. Si on veut retourner plusieurs variables, il faut les placer dans un tableau et retourner ce dernier. Mais il est plus commode d'utiliser un objet littéral. 

L'exemple classique est la fonction qui calcule des coordonnées d'un élément HTML sur une page Web. Il faut ici retourner les coordonnées x et y

Code : JavaScript 

1

2

3

4

5

6

7

8

9

10

function getCoords() {

   /* Script incomplet, juste pour l'exemple */

       

   return { x: 12, y: 21 };

}

     

var coords = getCoords();

         

alert(coords.x); // 12

alert(coords.y); // 21



La valeur de retour de la fonction getCoords() est mise dans la variable coords, et l'accès à x et y en est simplifié.


Créé avec HelpNDoc Personal Edition: Écrire des livres électroniques ePub pour l'iPad

Site à deux balles