Chapitre 6 : Objets et prototypes
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.
Quiz du chapitre 6
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 #1Crée un objet 'utilisateur' avec les propriétés 'nom' et 'age'.
Consulter la solution type du formateur
#2 — Accès aux propriétés
Atelier #2Affiche le nom de l'objet 'utilisateur' dans la console.
Consulter la solution type du formateur
#3 — Méthode d'objet
Atelier #3Ajoute une méthode 'sePresente' à l'objet qui affiche 'Je m'appelle ' suivi du nom.
Consulter la solution type du formateur
#4 — Prototype
Atelier #4À quoi sert la propriété 'prototype' en JavaScript ?
Consulter la solution type du formateur
#5 — JSON
Atelier #5Convertis l'objet 'utilisateur' en chaîne de caractères JSON.