Chapitre 6 : Objets et prototypes

Écouter la leçon Lecture audio assistée par IA

1. Qu'est-ce qu'un objet ?

Un objet est une collection de propriétés (paires clé-valeur) qui représente une entité.

2. Création d'objets

Notation littérale (recommandée)

let personne = {
    nom: "Dupont",
    prenom: "Marie",
    age: 25,
    ville: "Paris"
};

console.log(personne.nom); // "Dupont"

Avec new Object()

let voiture = new Object();
voiture.marque = "Toyota";
voiture.modele = "Corolla";
voiture.annee = 2020;

3. Accès aux propriétés

Notation pointée

let user = {
    nom: "Alice",
    age: 30
};

console.log(user.nom); // "Alice"
user.age = 31; // Modification

Notation entre crochets

console.log(user["nom"]); // "Alice"

// Utile avec des variables
let propriete = "age";
console.log(user[propriete]); // 30

4. Méthodes d'objet

Une méthode est une fonction stockée dans un objet :

let personne = {
    nom: "Bob",
    age: 25,

    // Méthode
    sePresenter: function() {
        console.log("Je m'appelle " + this.nom);
    },

    // Syntaxe courte (ES6)
    vieillir() {
        this.age++;
    }
};

personne.sePresenter(); // "Je m'appelle Bob"
personne.vieillir();
console.log(personne.age); // 26

5. Le mot-clé this

this fait référence à l'objet courant :

let calculatrice = {
    a: 10,
    b: 5,

    additionner() {
        return this.a + this.b;
    },

    multiplier() {
        return this.a * this.b;
    }
};

console.log(calculatrice.additionner());  // 15
console.log(calculatrice.multiplier());   // 50

6. Constructeurs et prototypes

Fonction constructeur

function Personne(nom, age) {
    this.nom = nom;
    this.age = age;
}

// Créer des instances
let alice = new Personne("Alice", 25);
let bob = new Personne("Bob", 30);

console.log(alice.nom); // "Alice"
console.log(bob.age);   // 30

Ajouter des méthodes au prototype

Personne.prototype.sePresenter = function() {
    console.log(`Je suis ${this.nom}, ${this.age} ans`);
};

alice.sePresenter(); // "Je suis Alice, 25 ans"
bob.sePresenter();   // "Je suis Bob, 30 ans"

7. Méthodes utiles pour les objets

Object.keys()

let user = { nom: "Alice", age: 25, ville: "Paris" };
let cles = Object.keys(user);
console.log(cles); // ["nom", "age", "ville"]

Object.values()

let valeurs = Object.values(user);
console.log(valeurs); // ["Alice", 25, "Paris"]

Object.entries()

let entries = Object.entries(user);
console.log(entries);
// [["nom", "Alice"], ["age", 25], ["ville", "Paris"]]

8. Exercice pratique

// Créez un objet livre
let livre = {
    titre: "Le Petit Prince",
    auteur: "Antoine de Saint-Exupéry",
    annee: 1943,
    pages: 96,

    afficherInfo() {
        console.log(`${this.titre} par ${this.auteur} (${this.annee})`);
    }
};

livre.afficherInfo();

// Constructeur pour créer plusieurs livres
function Livre(titre, auteur, annee) {
    this.titre = titre;
    this.auteur = auteur;
    this.annee = annee;
}

Livre.prototype.estAncien = function() {
    return (new Date().getFullYear() - this.annee) > 50;
};

let livre1 = new Livre("1984", "George Orwell", 1949);
let livre2 = new Livre("Clean Code", "Robert Martin", 2008);

console.log(livre1.estAncien()); // true
console.log(livre2.estAncien()); // false

Conclusion

Vous maîtrisez maintenant les objets et prototypes en JavaScript ! Dans le prochain chapitre, nous allons découvrir les événements.

Évaluation des acquis

Quiz du chapitre 6

Correction immédiate
Q1 Comment crée-t-on un objet vide en JavaScript ?
Q2 Qu'est-ce qu'un prototype en JavaScript ?
Ateliers pratiques & Projets

Testez vos compétences avec nos exercices guidés et le tuteur IA.

Ateliers pratiques & Corrigés détaillés

Ateliers pratiques & Corrigés

#1 — Création d'objet
Atelier #1

Crée un objet 'utilisateur' avec les propriétés 'nom' et 'age'.

Correction instantanée et bienveillante
Diagnostic du tuteur IA Weegosoft :
Consulter la solution type du formateur
Solution de référence :
const utilisateur = { nom: "Dupont", age: 30 };
#2 — Accès aux propriétés
Atelier #2

Affiche le nom de l'objet 'utilisateur' dans la console.

Correction instantanée et bienveillante
Diagnostic du tuteur IA Weegosoft :
Consulter la solution type du formateur
Solution de référence :
console.log(utilisateur.nom); // ou console.log(utilisateur["nom"]);
#3 — Méthode d'objet
Atelier #3

Ajoute une méthode 'sePresente' à l'objet qui affiche 'Je m'appelle ' suivi du nom.

Correction instantanée et bienveillante
Diagnostic du tuteur IA Weegosoft :
Consulter la solution type du formateur
Solution de référence :
const utilisateur = { nom: "Dupont", sePresente: function() { console.log("Je m'appelle " + this.nom); } };
#4 — Prototype
Atelier #4

À quoi sert la propriété 'prototype' en JavaScript ?

Correction instantanée et bienveillante
Diagnostic du tuteur IA Weegosoft :
Consulter la solution type du formateur
Solution de référence :
Elle permet d'ajouter des méthodes et propriétés à tous les objets créés à partir d'un constructeur ou d'une classe.
#5 — JSON
Atelier #5

Convertis l'objet 'utilisateur' en chaîne de caractères JSON.

Correction instantanée et bienveillante
Diagnostic du tuteur IA Weegosoft :
Consulter la solution type du formateur
Solution de référence :
const jsonStr = JSON.stringify(utilisateur);
Besoin d'aide ?
Tuteur Virtuel
Bonjour ! Je suis votre tuteur virtuel. Comment puis-je vous aider avec ce cours aujourd'hui ?
Historique des conversations
Chargement...