Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Utmaning: Implementera Statiska Egenskaper och Metoder i en Klass | Bemästra JavaScript-klasser och Arv
Avancerad JavaScript-mästerskap

bookUtmaning: Implementera Statiska Egenskaper och Metoder i en Klass

Uppgift

Föreställ dig att du bygger ett lagerhanteringssystem för en nätbutik. Klassen Product behöver hålla reda på det totala antalet produkter som lagts till i lagret, samt erbjuda funktionalitet för att jämföra priser mellan två produkter.

  1. Definiera en statisk egenskap:
    • I klassen Product, skapa en statisk egenskap totalProducts som initialiseras till 0;
    • Varje gång en ny instans av Product skapas, öka värdet på totalProducts med 1 för att hålla reda på hur många produkter som har lagts till i lagret.
  2. Definiera en statisk metod: Definiera en statisk metod comparePrices(product1, product2) som tar två instanser av Product som parametrar och returnerar:
    • "Product 1 is more expensive" om product1 har ett högre pris;
    • "Product 2 is more expensive" om product2 har ett högre pris;
    • "Both products have the same price" om de har samma 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
  • Definiera en statisk egenskap med namnet totalProducts och initiera den till 0;
  • I konstruktorn, öka Product.totalProducts med 1 varje gång en ny instans av Product skapas;
  • Definiera en statisk metod comparePrices(product1, product2) som tar två parametrar: product1 och product2;
  • I comparePrices, använd ett if-uttryck för att kontrollera om product1.price är större än product2.price. Om sant, returnera "Product 1 is more expensive";
  • Använd ett else if-uttryck för att kontrollera om product1.price är mindre än product2.price. Om sant, returnera "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 allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 13

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 2.22

bookUtmaning: Implementera Statiska Egenskaper och Metoder i en Klass

Svep för att visa menyn

Uppgift

Föreställ dig att du bygger ett lagerhanteringssystem för en nätbutik. Klassen Product behöver hålla reda på det totala antalet produkter som lagts till i lagret, samt erbjuda funktionalitet för att jämföra priser mellan två produkter.

  1. Definiera en statisk egenskap:
    • I klassen Product, skapa en statisk egenskap totalProducts som initialiseras till 0;
    • Varje gång en ny instans av Product skapas, öka värdet på totalProducts med 1 för att hålla reda på hur många produkter som har lagts till i lagret.
  2. Definiera en statisk metod: Definiera en statisk metod comparePrices(product1, product2) som tar två instanser av Product som parametrar och returnerar:
    • "Product 1 is more expensive" om product1 har ett högre pris;
    • "Product 2 is more expensive" om product2 har ett högre pris;
    • "Both products have the same price" om de har samma 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
  • Definiera en statisk egenskap med namnet totalProducts och initiera den till 0;
  • I konstruktorn, öka Product.totalProducts med 1 varje gång en ny instans av Product skapas;
  • Definiera en statisk metod comparePrices(product1, product2) som tar två parametrar: product1 och product2;
  • I comparePrices, använd ett if-uttryck för att kontrollera om product1.price är större än product2.price. Om sant, returnera "Product 1 is more expensive";
  • Använd ett else if-uttryck för att kontrollera om product1.price är mindre än product2.price. Om sant, returnera "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 allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 13
some-alt