Udfordring: Implementér Statiske Egenskaber og Metoder i en Klasse
Opgave
Forestil dig, at du bygger et lagerstyringssystem til en onlinebutik. Product-klassen skal holde styr på det samlede antal produkter, der er tilføjet til lageret, samt give funktionalitet til at sammenligne priserne på to produkter.
- Definér en statisk egenskab:
- I
Product-klassen, opret en statisk egenskabtotalProducts, der er initialiseret til0; - Hver gang en ny instans af
Productoprettes, skaltotalProductsøges med 1 for at holde styr på, hvor mange produkter der er tilføjet til lageret.
- I
- Definér en statisk metode: Definér en statisk metode
comparePrices(product1, product2), der tager toProduct-instanser som parametre og returnerer:"Product 1 is more expensive", hvisproduct1har en højere pris;"Product 2 is more expensive", hvisproduct2har en højere pris;"Both products have the same price", hvis de har samme pris.
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
- Definér en statisk egenskab med navnet
totalProducts, og initialisér den til0; - I konstruktøren skal du øge
Product.totalProductsmed 1, hver gang en ny instans afProductoprettes; - Definér en statisk metode
comparePrices(product1, product2), der tager to parametre:product1ogproduct2; - I
comparePricesskal du bruge enif-sætning til at kontrollere, omproduct1.priceer større endproduct2.price. Hvis det er sandt, returnér"Product 1 is more expensive"; - Brug en
else if-sætning til at kontrollere, omproduct1.priceer mindre endproduct2.price. Hvis det er sandt, returnér"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
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
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
Udfordring: Implementér Statiske Egenskaber og Metoder i en Klasse
Stryg for at vise menuen
Opgave
Forestil dig, at du bygger et lagerstyringssystem til en onlinebutik. Product-klassen skal holde styr på det samlede antal produkter, der er tilføjet til lageret, samt give funktionalitet til at sammenligne priserne på to produkter.
- Definér en statisk egenskab:
- I
Product-klassen, opret en statisk egenskabtotalProducts, der er initialiseret til0; - Hver gang en ny instans af
Productoprettes, skaltotalProductsøges med 1 for at holde styr på, hvor mange produkter der er tilføjet til lageret.
- I
- Definér en statisk metode: Definér en statisk metode
comparePrices(product1, product2), der tager toProduct-instanser som parametre og returnerer:"Product 1 is more expensive", hvisproduct1har en højere pris;"Product 2 is more expensive", hvisproduct2har en højere pris;"Both products have the same price", hvis de har samme pris.
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
- Definér en statisk egenskab med navnet
totalProducts, og initialisér den til0; - I konstruktøren skal du øge
Product.totalProductsmed 1, hver gang en ny instans afProductoprettes; - Definér en statisk metode
comparePrices(product1, product2), der tager to parametre:product1ogproduct2; - I
comparePricesskal du bruge enif-sætning til at kontrollere, omproduct1.priceer større endproduct2.price. Hvis det er sandt, returnér"Product 1 is more expensive"; - Brug en
else if-sætning til at kontrollere, omproduct1.priceer mindre endproduct2.price. Hvis det er sandt, returnér"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
Tak for dine kommentarer!