Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Utfordring: Implementere Statiske Egenskaper og Metoder i en Klasse | Mastering JavaScript-klasser og Arv
Avansert JavaScript-mestring

bookUtfordring: Implementere Statiske Egenskaper og Metoder i en Klasse

Oppgave

Tenk deg at du bygger et lagerstyringssystem for en nettbutikk. Product-klassen må holde oversikt over det totale antallet produkter som er lagt til i lageret, samt tilby funksjonalitet for å sammenligne prisene på to produkter.

  1. Definer en statisk egenskap:
    • I Product-klassen, opprett en statisk egenskap totalProducts initialisert til 0;
    • Hver gang en ny instans av Product opprettes, øk totalProducts med 1 for å holde oversikt over hvor mange produkter som er lagt til i lageret.
  2. Definer en statisk metode: Definer en statisk metode comparePrices(product1, product2) som tar to instanser av Product som parametere og returnerer:
    • "Product 1 is more expensive" hvis product1 har en høyere pris;
    • "Product 2 is more expensive" hvis product2 har en høyere pris;
    • "Both products have the same price" hvis de har lik 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
  • Definer en statisk egenskap kalt totalProducts og initialiser den til 0;
  • I konstruktøren, øk Product.totalProducts med 1 hver gang en ny instans av Product opprettes;
  • Definer en statisk metode comparePrices(product1, product2) som tar to parametere: product1 og product2;
  • I comparePrices, bruk en if-setning for å sjekke om product1.price er større enn product2.price. Hvis sant, returner "Product 1 is more expensive";
  • Bruk en else if-setning for å sjekke om product1.price er mindre enn product2.price. Hvis sant, returner "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

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 13

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

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

bookUtfordring: Implementere Statiske Egenskaper og Metoder i en Klasse

Sveip for å vise menyen

Oppgave

Tenk deg at du bygger et lagerstyringssystem for en nettbutikk. Product-klassen må holde oversikt over det totale antallet produkter som er lagt til i lageret, samt tilby funksjonalitet for å sammenligne prisene på to produkter.

  1. Definer en statisk egenskap:
    • I Product-klassen, opprett en statisk egenskap totalProducts initialisert til 0;
    • Hver gang en ny instans av Product opprettes, øk totalProducts med 1 for å holde oversikt over hvor mange produkter som er lagt til i lageret.
  2. Definer en statisk metode: Definer en statisk metode comparePrices(product1, product2) som tar to instanser av Product som parametere og returnerer:
    • "Product 1 is more expensive" hvis product1 har en høyere pris;
    • "Product 2 is more expensive" hvis product2 har en høyere pris;
    • "Both products have the same price" hvis de har lik 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
  • Definer en statisk egenskap kalt totalProducts og initialiser den til 0;
  • I konstruktøren, øk Product.totalProducts med 1 hver gang en ny instans av Product opprettes;
  • Definer en statisk metode comparePrices(product1, product2) som tar to parametere: product1 og product2;
  • I comparePrices, bruk en if-setning for å sjekke om product1.price er større enn product2.price. Hvis sant, returner "Product 1 is more expensive";
  • Bruk en else if-setning for å sjekke om product1.price er mindre enn product2.price. Hvis sant, returner "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

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 13
some-alt