Avez-vous une question? (216) 97 656 803 hajjriadh@gmail.com
JavaScript

Les objets littéraux : propriétés et méthodes

Les objets littéraux : propriétés et méthodes. Dans cette leçon du cours JavaScript, vous apprendrez à : créer un objet littéral et accéder à ses propriétés ; ajouter, modifier, supprimer et tester de...

0 chapitres 0 QCM Accès gratuit
Dans cet article

À propos de ce cours

Les objets littéraux : propriétés et méthodes. Dans cette leçon du cours JavaScript, vous apprendrez à : créer un objet littéral et accéder à ses propriétés ; ajouter, modifier, supprimer et tester des propriétés ; écrire des méthodes et utiliser this ; comprendre qu'un objet est manipulé par référence.

Chapitre 9 — Les objets littéraux, JSON et les collections · Les objets littéraux : propriétés et méthodes

🎯 Objectifs de la leçon
• créer un objet littéral et accéder à ses propriétés ;
• ajouter, modifier, supprimer et tester des propriétés ;
• écrire des méthodes et utiliser this;
• comprendre qu'un objet est manipulé par référence.

1. Regrouper des données

Un tableau range des valeurs numérotées. Pour décrire une chose qui a plusieurs caractéristiques (un stagiaire, un produit, un contact), on utilise un objet: un ensemble de propriétés, chacune formée d'une clé (un nom) et d'une valeur. L'écriture entre accolades s'appelle un objet littéral.

Un objet littéral
Figure 1 — Clés, valeurs, objet imbriqué, méthode et accès aux propriétés.

2. Créer et manipuler un objet

// 1. Créer un objet littéral : des paires clé : valeur entre accolades
const stagiaire = {
  nom: "Amina Tazi",
  age: 19,
  groupe: "DEV101",
  notes: [14, 16.5, 12],
  adresse: { ville: "Casablanca", codePostal: "20250" },
  "date-inscription": "2026-09-07",          // clé avec un tiret : guillemets obligatoires
};
console.log(stagiaire.nom, "|", stagiaire.adresse.ville, "|", stagiaire.notes[1]);

// 2. Notation pointée ou crochets
console.log(stagiaire["date-inscription"]);
const champ = "groupe";
console.log(`stagiaire[champ] = ${stagiaire[champ]}`);      // clé contenue dans une variable
console.log("Propriété absente :", stagiaire.telephone);

// 3. Ajouter, modifier, supprimer
stagiaire.email = "amina@ista.ma";
stagiaire.age = 20;
delete stagiaire["date-inscription"];
console.log("Clés :", Object.keys(stagiaire).join(", "));

// 4. Tester l'existence d'une propriété
console.log("'email' in stagiaire ?", "email" in stagiaire, "| Object.hasOwn(stagiaire, 'tel') ?", Object.hasOwn(stagiaire, "tel"));

// 5. Des méthodes : des fonctions rangées dans l'objet
const compte = {
  titulaire: "Karim",
  solde: 500,
  deposer(montant) {             // syntaxe courte des méthodes
    this.solde += montant;       // this = l'objet sur lequel on appelle la méthode
    return this.solde;
  },
  resume() {
    return `${this.titulaire} : ${this.solde} DH`;
  },
};
compte.deposer(250);
console.log(compte.resume());

// 6. Raccourcis ES6 : propriétés abrégées et clés calculées
const nom = "Salma", note = 17, matiere = "javascript";
const fiche = { nom, note, [`note_${matiere}`]: note };
console.log(fiche);

// 7. Un objet est une référence
const copie = stagiaire;
copie.age = 99;
console.log("stagiaire.age après modification de copie :", stagiaire.age);
const a = { x: 1 }, b = { x: 1 };
console.log("{ x: 1 } === { x: 1 } ?", a === b);

// 8. Chaînage optionnel pour une propriété peut-être absente
console.log("Ville du tuteur :", stagiaire.tuteur?.adresse?.ville ?? "non renseignée");

Résultat dans la console

Amina Tazi | Casablanca | 16.5
2026-09-07
stagiaire[champ] = DEV101
Propriété absente : undefined
Clés : nom, age, groupe, notes, adresse, email
'email' in stagiaire ? true | Object.hasOwn(stagiaire, 'tel') ? false
Karim : 750 DH
{ nom: 'Salma', note: 17, note_javascript: 17 }
stagiaire.age après modification de copie : 99
{ x: 1 } === { x: 1 } ? false
Ville du tuteur : non renseignée
  • Lire: objet.cle (notation pointée), ou objet["cle"] (crochets) quand la clé contient un tiret ou un espace, ou quand elle est dans une variable. Une propriété absente vaut undefined, sans erreur.
  • Ajouter ou modifier: une simple affectation. Supprimer: delete objet.cle.
  • Tester: "cle" in objet ou Object.hasOwn(objet, "cle"). Ne testez pas objet.cle !== undefined: une propriété peut exister et valoir undefined.
  • Méthodes: une fonction rangée dans l'objet. Dans une méthode, this désigne l'objet sur lequel on l'appelle (compte.deposer() → this = compte). Écrivez-la avec la syntaxe courte deposer(montant) { … }, pas avec une fonction fléchée (leçon 10.5).
  • Raccourcis: { nom, note } équivaut à { nom: nom, note: note }; [expression]: valeur calcule le nom de la clé.
  • Chaînage optionnel: stagiaire.tuteur?.adresse?.ville renvoie undefined au lieu de provoquer une erreur si une étape manque.

3. Un objet est une référence

Référence et copie d'un objet
Figure 2 — Une affectation ne copie pas l'objet : les deux variables désignent le même.

Une variable ne contient pas l'objet lui-même mais une référence vers lui. const copie = stagiaire crée un second nom pour le même objet : modifier copie.age modifie stagiaire.age. C'est aussi pourquoi const n'empêche pas de modifier les propriétés : il interdit seulement de faire pointer la variable vers un autre objet. Pour une vraie copie, voir la leçon 9.4.

ℹ️ À retenir
• { cle: valeur, … }; lecture par o.cle ou o["cle"]; propriété absente : undefined.
• Ajouter/modifier par affectation, supprimer avec delete, tester avec in ou Object.hasOwn.
• Une méthode est une fonction de l'objet ; this = l'objet appelant.
• Les objets sont manipulés par référence : affecter n'est pas copier.

🛠 Activité 1 — La fiche produit en objet

Mission : Représentez un produit de boutique en ligne par un objet, puis faites-le évoluer.

Questions pour avancer (répondez dans votre compte rendu, puis appliquez dans votre projet) :

  1. Créez un objet produit avec un nom, un prix, une quantité en stock, une liste de couleurs et un objet fournisseur (nom, ville). Comment accédez-vous à la ville du fournisseur ? À la deuxième couleur ?
  2. Ajoutez une propriété promotion, modifiez le prix, puis supprimez la propriété promotion. Affichez la liste des clés après chaque étape.
  3. Une variable champ contient le texte "prix". Comment lisez-vous la propriété correspondante ? Pourquoi produit.champ ne fonctionne-t-il pas ?
  4. Ajoutez une méthode vendre(quantite) qui diminue le stock et renvoie un message, ou refuse si le stock est insuffisant. Que se passe-t-il si vous l'écrivez en fonction fléchée ?
  5. Écrivez const produit2 = produit; puis changez le prix de produit2. Que vaut le prix de produit? Expliquez avec la figure 2.
  6. Affichez produit.remise?.taux et produit.remise.taux. Quelle différence ? Dans quel cas le chaînage optionnel est-il utile ?

Je vérifie / je rends :

  • ☐ Le fichier et les réponses aux questions 3, 4 et 5.

Le tableau associatif en JavaScript →