Défi : Implémenter des Propriétés et Méthodes Statiques dans une Classe
Tâche
Imaginez que vous développez un système de gestion d'inventaire pour une boutique en ligne. La classe Product doit suivre le nombre total de produits ajoutés à l'inventaire, ainsi que fournir une fonctionnalité pour comparer les prix de deux produits.
- Définir une propriété statique :
- Dans la classe
Product, créez une propriété statiquetotalProductsinitialisée à0; - À chaque fois qu'une nouvelle instance de
Productest créée, incrémenteztotalProductsde 1 pour suivre combien de produits ont été ajoutés à l'inventaire.
- Dans la classe
- Définir une méthode statique : Définissez une méthode statique
comparePrices(product1, product2)qui prend deux instances deProducten paramètres et retourne :"Product 1 is more expensive"siproduct1a un prix plus élevé ;"Product 2 is more expensive"siproduct2a un prix plus élevé ;"Both products have the same price"s'ils ont le même prix.
12345678910111213141516171819202122232425262728293031class Product { _____ _____ = 0; // Define static property for total products constructor(name, price) { this.name = name; this.price = price; Product._____+=1; // Increment totalProducts } // Static method to compare prices _____ comparePrices(product1, product2) { if (product1.price > product2.price) { return _____; } else if (_____ < _____) { return _____; } else { return 'Both products have the same price'; } } } // Testing const product1 = new Product('Laptop', 1200); const product2 = new Product('Smartphone', 800); const product3 = new Product('Tablet', 1200); console.log(Product.comparePrices(product1, product2)); // Expected: Product 1 is more expensive console.log(Product.comparePrices(product1, product3)); // Expected: Both products have the same price console.log(Product.comparePrices(product2, product3)); // Expected: Product 2 is more expensive console.log(Product.totalProducts); // Expected: 3
- Définir une propriété statique nommée
totalProductset l'initialiser à0; - Dans le constructeur, incrémenter
Product.totalProductsde 1 à chaque création d'une nouvelle instance deProduct; - Définir une méthode statique
comparePrices(product1, product2)qui prend deux paramètres :product1etproduct2; - Dans
comparePrices, utiliser une instructionifpour vérifier siproduct1.priceest supérieur àproduct2.price. Si c'est le cas, retourner"Product 1 is more expensive"; - Utiliser une instruction
else ifpour vérifier siproduct1.priceest inférieur àproduct2.price. Si c'est le cas, retourner"Product 2 is more expensive".
12345678910111213141516171819202122232425262728293031class Product { static totalProducts = 0; // Define static property for total products constructor(name, price) { this.name = name; this.price = price; Product.totalProducts+=1; // Increment totalProducts } // Static method to compare prices static comparePrices(product1, product2) { if (product1.price > product2.price) { return 'Product 1 is more expensive'; } else if (product1.price < product2.price) { return 'Product 2 is more expensive'; } else { return 'Both products have the same price'; } } } // Testing const product1 = new Product('Laptop', 1200); const product2 = new Product('Smartphone', 800); const product3 = new Product('Tablet', 1200); console.log(Product.comparePrices(product1, product2)); // Output: Product 1 is more expensive console.log(Product.comparePrices(product1, product3)); // Output: Both products have the same price console.log(Product.comparePrices(product2, product3)); // Output: Product 2 is more expensive console.log(Product.totalProducts); // Output: 3
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Can you explain how static properties and methods work in JavaScript?
What would happen if I created more Product instances?
Can you show how to add more features to the Product class?
Awesome!
Completion rate improved to 2.22
Défi : Implémenter des Propriétés et Méthodes Statiques dans une Classe
Glissez pour afficher le menu
Tâche
Imaginez que vous développez un système de gestion d'inventaire pour une boutique en ligne. La classe Product doit suivre le nombre total de produits ajoutés à l'inventaire, ainsi que fournir une fonctionnalité pour comparer les prix de deux produits.
- Définir une propriété statique :
- Dans la classe
Product, créez une propriété statiquetotalProductsinitialisée à0; - À chaque fois qu'une nouvelle instance de
Productest créée, incrémenteztotalProductsde 1 pour suivre combien de produits ont été ajoutés à l'inventaire.
- Dans la classe
- Définir une méthode statique : Définissez une méthode statique
comparePrices(product1, product2)qui prend deux instances deProducten paramètres et retourne :"Product 1 is more expensive"siproduct1a un prix plus élevé ;"Product 2 is more expensive"siproduct2a un prix plus élevé ;"Both products have the same price"s'ils ont le même prix.
12345678910111213141516171819202122232425262728293031class Product { _____ _____ = 0; // Define static property for total products constructor(name, price) { this.name = name; this.price = price; Product._____+=1; // Increment totalProducts } // Static method to compare prices _____ comparePrices(product1, product2) { if (product1.price > product2.price) { return _____; } else if (_____ < _____) { return _____; } else { return 'Both products have the same price'; } } } // Testing const product1 = new Product('Laptop', 1200); const product2 = new Product('Smartphone', 800); const product3 = new Product('Tablet', 1200); console.log(Product.comparePrices(product1, product2)); // Expected: Product 1 is more expensive console.log(Product.comparePrices(product1, product3)); // Expected: Both products have the same price console.log(Product.comparePrices(product2, product3)); // Expected: Product 2 is more expensive console.log(Product.totalProducts); // Expected: 3
- Définir une propriété statique nommée
totalProductset l'initialiser à0; - Dans le constructeur, incrémenter
Product.totalProductsde 1 à chaque création d'une nouvelle instance deProduct; - Définir une méthode statique
comparePrices(product1, product2)qui prend deux paramètres :product1etproduct2; - Dans
comparePrices, utiliser une instructionifpour vérifier siproduct1.priceest supérieur àproduct2.price. Si c'est le cas, retourner"Product 1 is more expensive"; - Utiliser une instruction
else ifpour vérifier siproduct1.priceest inférieur àproduct2.price. Si c'est le cas, retourner"Product 2 is more expensive".
12345678910111213141516171819202122232425262728293031class Product { static totalProducts = 0; // Define static property for total products constructor(name, price) { this.name = name; this.price = price; Product.totalProducts+=1; // Increment totalProducts } // Static method to compare prices static comparePrices(product1, product2) { if (product1.price > product2.price) { return 'Product 1 is more expensive'; } else if (product1.price < product2.price) { return 'Product 2 is more expensive'; } else { return 'Both products have the same price'; } } } // Testing const product1 = new Product('Laptop', 1200); const product2 = new Product('Smartphone', 800); const product3 = new Product('Tablet', 1200); console.log(Product.comparePrices(product1, product2)); // Output: Product 1 is more expensive console.log(Product.comparePrices(product1, product3)); // Output: Both products have the same price console.log(Product.comparePrices(product2, product3)); // Output: Product 2 is more expensive console.log(Product.totalProducts); // Output: 3
Merci pour vos commentaires !