Skip to content

Les objets

Les objets en JavaScript sont des collections de propriétés, où chaque propriété est une paire clé-valeur. Les objets sont des structures de données fondamentales en JavaScript, utilisées pour stocker divers types de données et pour modéliser des choses du monde réel dans le code. Voici un aperçu de la manière de travailler avec les objets en JavaScript, accompagné d'un exemple.

Création d'un Objet

Un objet peut être créé en utilisant des accolades {}. Les propriétés et leurs valeurs sont définies à l'intérieur des accolades, séparées par des virgules.

javascript
let personne = {
    nom: "Alice",
    age: 30,
    estEtudiant: false
};
let personne = {
    nom: "Alice",
    age: 30,
    estEtudiant: false
};

Dans cet exemple, personne est un objet avec trois propriétés : nom, age et estEtudiant.

Accès aux Propriétés

Vous pouvez accéder aux valeurs des propriétés d'un objet en utilisant la notation par point ou la notation par crochets.

javascript
// Notation par point
console.log(personne.nom); // Affiche "Alice"

// Notation par crochets
console.log(personne['age']); // Affiche 30
// Notation par point
console.log(personne.nom); // Affiche "Alice"

// Notation par crochets
console.log(personne['age']); // Affiche 30

Modification des Objets

Les objets en JavaScript sont modifiables. Vous pouvez ajouter, modifier ou supprimer des propriétés après la création de l'objet.

javascript
// Ajout d'une nouvelle propriété
personne.profession = "Ingénieur";

// Modification d'une propriété existante
personne.age = 31;

// Suppression d'une propriété
delete personne.estEtudiant;
// Ajout d'une nouvelle propriété
personne.profession = "Ingénieur";

// Modification d'une propriété existante
personne.age = 31;

// Suppression d'une propriété
delete personne.estEtudiant;

Exemple : Objet Représentant une Voiture

Imaginons que vous souhaitiez représenter une voiture dans votre programme. Un objet peut être utilisé pour stocker diverses informations sur cette voiture, comme sa marque, son modèle, et sa couleur.

javascript
let voiture = {
    marque: "Toyota",
    modele: "Corolla",
    couleur: "rouge",
    demarrer: function() {
        console.log("La voiture démarre !");
    }
};

// Accès aux propriétés
console.log("Marque de la voiture:", voiture.marque); // Affiche "Marque de la voiture: Toyota"

// Appel de la méthode de l'objet
voiture.demarrer(); // Affiche "La voiture démarre !"
let voiture = {
    marque: "Toyota",
    modele: "Corolla",
    couleur: "rouge",
    demarrer: function() {
        console.log("La voiture démarre !");
    }
};

// Accès aux propriétés
console.log("Marque de la voiture:", voiture.marque); // Affiche "Marque de la voiture: Toyota"

// Appel de la méthode de l'objet
voiture.demarrer(); // Affiche "La voiture démarre !"

Dans cet exemple, voiture est un objet avec des propriétés marque, modele, et couleur, ainsi qu'une méthode demarrer. Les méthodes sont des fonctions associées à des objets et peuvent être appelées en utilisant la notation par point.

Méthodes courantes pour les Objets

Les objets en JavaScript ont accès à plusieurs méthodes intégrées qui permettent de manipuler et d'interagir avec leurs propriétés et valeurs. Voici quelques-unes des méthodes courantes utilisées avec les objets :

1. Object.keys(obj)

Cette méthode retourne un tableau contenant les noms des propriétés propres énumérables d'un objet.

javascript
let personne = { nom: "Alice", age: 30, profession: "Ingénieur" };
let cles = Object.keys(personne);
console.log(cles); // ["nom", "age", "profession"]
let personne = { nom: "Alice", age: 30, profession: "Ingénieur" };
let cles = Object.keys(personne);
console.log(cles); // ["nom", "age", "profession"]

2. Object.values(obj)

Retourne un tableau contenant les valeurs des propriétés énumérables d'un objet.

javascript
let valeurs = Object.values(personne);
console.log(valeurs); // ["Alice", 30, "Ingénieur"]
let valeurs = Object.values(personne);
console.log(valeurs); // ["Alice", 30, "Ingénieur"]

3. Object.entries(obj)

Retourne un tableau de paires [clé, valeur] des propriétés énumérables d'un objet.

javascript
let entrees = Object.entries(personne);
console.log(entrees); // [["nom", "Alice"], ["age", 30], ["profession", "Ingénieur"]]
let entrees = Object.entries(personne);
console.log(entrees); // [["nom", "Alice"], ["age", 30], ["profession", "Ingénieur"]]

4. Object.assign(destination, ...sources)

Utilisée pour copier les valeurs de toutes les propriétés énumérables d'un ou plusieurs objets source vers un objet cible.

javascript
let adresse = { ville: "Paris", pays: "France" };
let personneEtAdresse = Object.assign({}, personne, adresse);
console.log(personneEtAdresse); 
// { nom: "Alice", age: 30, profession: "Ingénieur", ville: "Paris", pays: "France" }
let adresse = { ville: "Paris", pays: "France" };
let personneEtAdresse = Object.assign({}, personne, adresse);
console.log(personneEtAdresse); 
// { nom: "Alice", age: 30, profession: "Ingénieur", ville: "Paris", pays: "France" }

5. Object.freeze(obj)

Empêche la modification des propriétés et valeurs d'un objet, ainsi que l'ajout de nouvelles propriétés ou la suppression de propriétés existantes.

javascript
Object.freeze(personne);
personne.nom = "Bob"; // Ceci n'aura aucun effet car l'objet est gelé
Object.freeze(personne);
personne.nom = "Bob"; // Ceci n'aura aucun effet car l'objet est gelé

6. Object.defineProperty(obj, prop, descriptor)

Permet de définir une nouvelle propriété sur un objet ou de modifier une propriété existante et contrôle en détail son comportement.

javascript
Object.defineProperty(personne, 'dateNaissance', {
    value: "1 janvier 1990",
    writable: false
});
Object.defineProperty(personne, 'dateNaissance', {
    value: "1 janvier 1990",
    writable: false
});

7. Object.hasOwn(obj, prop)

Vérifie si un objet a une propriété spécifique comme propriété propre (et non héritée).

javascript
console.log(Object.hasOwn(personne, 'nom')); // true
console.log(Object.hasOwn(personne, 'toString')); // false, car toString est hérité
console.log(Object.hasOwn(personne, 'nom')); // true
console.log(Object.hasOwn(personne, 'toString')); // false, car toString est hérité