Contenu du cours
Maîtrise Avancée de JavaScript
Maîtrise Avancée de JavaScript
1. Classes
Bienvenue dans le CoursDéclaration de ClasseDéfi : Construire une ClasseMéthodes de ClasseDéfi : Ajouter des Méthodes à une ClasseObjet ParamètrePropriétés PrivéesDéfi : Implémentation de Propriétés Privées dans une ClasseAccesseurs et MutateursDéfi : Gestion des Propriétés avec Getters et SettersPropriétés StatiquesMéthodes StatiquesDéfi : Utilisation des Propriétés et Méthodes Statiques dans une ClasseHéritage avec Extends et Utilisation de super()Défi : Héritage de Classe avec Extends et Utilisation de Super
2. Manipulation du DOM
Qu'est-ce Que le DOM?Interroger le DOMDéfi : Interroger le DOMComprendre la Hiérarchie du DOMDéfi : Hiérarchie DOMPropriétés Du DOMTravailler Avec les Attributs des ÉlémentsDéfi : Travailler Avec les Propriétés et Attributs des ÉlémentsAjouter des ÉlémentsSuppression des ÉlémentsDéfi : Ajouter et Supprimer des ÉlémentsModifier les Styles des ÉlémentsDéfi : Modifier les Styles des Éléments
3. Événements et Gestion des Événements
4. JavaScript Asynchrone et APIs
Défi : Implémentation de Propriétés Privées dans une Classe
Tâche
Vous créez une classe BankAccount
pour gérer les comptes bancaires des utilisateurs de manière sécurisée. Chaque compte a un propriétaire et un solde, mais vous souhaitez que le solde soit protégé contre l'accès direct. Votre objectif est d'utiliser des propriétés privées pour empêcher les modifications non intentionnelles du solde tout en permettant un accès contrôlé via des méthodes.
- Propriété Privée du Solde:
- À l'intérieur de la classe
BankAccount
, déclarez une propriété privée#balance
.
- À l'intérieur de la classe
- Constructeur:
- Le constructeur doit accepter
owner
etinitialBalance
comme paramètres; - Assignez
owner
à une propriété publique etinitialBalance
à la propriété privée#balance
.
- Le constructeur doit accepter
- Ajouter des Méthodes:
- deposit: Définissez une méthode qui prend
amount
comme paramètre. Si le montant est supérieur à 0, il doit ajouteramount
à#balance
; - withdraw: Définissez une méthode qui prend
amount
comme paramètre. Si le montant est supérieur à 0 et inférieur ou égal à#balance
, il doit soustraireamount
de#balance
; - getBalance: Définissez une méthode qui retourne une chaîne avec le nom du propriétaire et le solde du compte, par exemple,
"Account balance for John: $1500"
.
- deposit: Définissez une méthode qui prend
class BankAccount { #_____; // Declare private property constructor(owner, initialBalance) { this._____ = owner; this.#_____ = initialBalance; } deposit(_____) { if (_____) { this.#_____ += _____; } } withdraw(_____) { if (_____ && _____) { this.#_____ -= _____; } } getBalance() { return `Account balance for ${this._____}: $${this.#_____}`; } } // Testing const account1 = new BankAccount('Alice', 1000); account1.deposit(500); console.log(account1.getBalance()); // Expected: Account balance for Alice: $1500 account1.withdraw(300); console.log(account1.getBalance()); // Expected: Account balance for Alice: $1200 // Attempt direct access (should cause an error) // console.log(account1.#balance);
- Déclarez une propriété privée
#balance
dans la classeBankAccount
; - Dans le constructeur, assignez
owner
à une propriété publique etinitialBalance
à la propriété privée#balance
; - Définissez une méthode
deposit
qui prendamount
comme paramètre. Vérifiez siamount
est supérieur à 0, puis ajoutezamount
à#balance
; - Définissez une méthode
withdraw
qui prendamount
comme paramètre. Vérifiez siamount
est supérieur à 0 et inférieur ou égal à#balance
, puis soustrayezamount
de#balance
; - Définissez une méthode
getBalance
qui renvoie une chaîne avec le nom du propriétaire et le solde du compte.
class BankAccount { #balance; // Declare private property constructor(owner, initialBalance) { this.owner = owner; this.#balance = initialBalance; } deposit(amount) { if (amount > 0) { this.#balance += amount; } } withdraw(amount) { if (amount > 0 && amount <= this.#balance) { this.#balance -= amount; } } getBalance() { return `Account balance for ${this.owner}: $${this.#balance}`; } } // Testing const account1 = new BankAccount('Alice', 1000); account1.deposit(500); console.log(account1.getBalance()); // Output: Account balance for Alice: $1500 account1.withdraw(300); console.log(account1.getBalance()); // Output: Account balance for Alice: $1200 // Attempt direct access (should cause an error) // console.log(account1.#balance);
Tout était clair ?
Merci pour vos commentaires !
Section 1. Chapitre 8