Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Udfordring: Implementér Statiske Egenskaber og Metoder i en Klasse | Mestering af JavaScript-klasser og Arv
Avanceret JavaScript-Mestring

bookUdfordring: 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.

  1. Definér en statisk egenskab:
    • I Product-klassen, opret en statisk egenskab totalProducts, der er initialiseret til 0;
    • Hver gang en ny instans af Product oprettes, skal totalProducts øges med 1 for at holde styr på, hvor mange produkter der er tilføjet til lageret.
  2. Definér en statisk metode: Definér en statisk metode comparePrices(product1, product2), der tager to Product-instanser som parametre og returnerer:
    • "Product 1 is more expensive", hvis product1 har en højere pris;
    • "Product 2 is more expensive", hvis product2 har en højere pris;
    • "Both products have the same price", hvis de har samme pris.
12345678910111213141516171819202122232425262728293031
class 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
copy
  • Definér en statisk egenskab med navnet totalProducts, og initialisér den til 0;
  • I konstruktøren skal du øge Product.totalProducts med 1, hver gang en ny instans af Product oprettes;
  • Definér en statisk metode comparePrices(product1, product2), der tager to parametre: product1 og product2;
  • I comparePrices skal du bruge en if-sætning til at kontrollere, om product1.price er større end product2.price. Hvis det er sandt, returnér "Product 1 is more expensive";
  • Brug en else if-sætning til at kontrollere, om product1.price er mindre end product2.price. Hvis det er sandt, returnér "Product 2 is more expensive".
12345678910111213141516171819202122232425262728293031
class 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
copy

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 13

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Suggested prompts:

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

bookUdfordring: 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.

  1. Definér en statisk egenskab:
    • I Product-klassen, opret en statisk egenskab totalProducts, der er initialiseret til 0;
    • Hver gang en ny instans af Product oprettes, skal totalProducts øges med 1 for at holde styr på, hvor mange produkter der er tilføjet til lageret.
  2. Definér en statisk metode: Definér en statisk metode comparePrices(product1, product2), der tager to Product-instanser som parametre og returnerer:
    • "Product 1 is more expensive", hvis product1 har en højere pris;
    • "Product 2 is more expensive", hvis product2 har en højere pris;
    • "Both products have the same price", hvis de har samme pris.
12345678910111213141516171819202122232425262728293031
class 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
copy
  • Definér en statisk egenskab med navnet totalProducts, og initialisér den til 0;
  • I konstruktøren skal du øge Product.totalProducts med 1, hver gang en ny instans af Product oprettes;
  • Definér en statisk metode comparePrices(product1, product2), der tager to parametre: product1 og product2;
  • I comparePrices skal du bruge en if-sætning til at kontrollere, om product1.price er større end product2.price. Hvis det er sandt, returnér "Product 1 is more expensive";
  • Brug en else if-sætning til at kontrollere, om product1.price er mindre end product2.price. Hvis det er sandt, returnér "Product 2 is more expensive".
12345678910111213141516171819202122232425262728293031
class 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
copy

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 13
some-alt