Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Haaste: Toteuta Staattiset Ominaisuudet ja Metodit Luokassa | JavaScript-luokkien ja Perinnän Hallinta
Edistynyt JavaScript-Osaaminen

bookHaaste: Toteuta Staattiset Ominaisuudet ja Metodit Luokassa

Tehtävä

Kuvittele, että rakennat varastonhallintajärjestelmää verkkokaupalle. Product-luokan tulee seurata varastoon lisättyjen tuotteiden kokonaismäärää sekä tarjota toiminnallisuus kahden tuotteen hintojen vertailuun.

  1. Määrittele staattinen ominaisuus:
    • Luo Product-luokkaan staattinen ominaisuus totalProducts, joka alustetaan arvoon 0;
    • Joka kerta kun uusi Product-olio luodaan, kasvata totalProducts-arvoa yhdellä, jotta voidaan seurata varastoon lisättyjen tuotteiden määrää.
  2. Määrittele staattinen metodi: Määrittele staattinen metodi comparePrices(product1, product2), joka ottaa kaksi Product-oliota parametreina ja palauttaa:
    • "Product 1 is more expensive", jos product1 on kalliimpi;
    • "Product 2 is more expensive", jos product2 on kalliimpi;
    • "Both products have the same price", jos hinnat ovat samat.
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
  • Määrittele staattinen ominaisuus nimeltä totalProducts ja alusta se arvoon 0;
  • Konstruktori-metodissa kasvata Product.totalProducts arvoa yhdellä aina, kun uusi Product-olio luodaan;
  • Määrittele staattinen metodi comparePrices(product1, product2), joka ottaa kaksi parametria: product1 ja product2;
  • Käytä comparePrices-metodissa if-lausetta tarkistaaksesi, onko product1.price suurempi kuin product2.price. Jos kyllä, palauta "Product 1 is more expensive";
  • Käytä else if-lausetta tarkistaaksesi, onko product1.price pienempi kuin product2.price. Jos kyllä, palauta "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

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 13

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

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

bookHaaste: Toteuta Staattiset Ominaisuudet ja Metodit Luokassa

Pyyhkäise näyttääksesi valikon

Tehtävä

Kuvittele, että rakennat varastonhallintajärjestelmää verkkokaupalle. Product-luokan tulee seurata varastoon lisättyjen tuotteiden kokonaismäärää sekä tarjota toiminnallisuus kahden tuotteen hintojen vertailuun.

  1. Määrittele staattinen ominaisuus:
    • Luo Product-luokkaan staattinen ominaisuus totalProducts, joka alustetaan arvoon 0;
    • Joka kerta kun uusi Product-olio luodaan, kasvata totalProducts-arvoa yhdellä, jotta voidaan seurata varastoon lisättyjen tuotteiden määrää.
  2. Määrittele staattinen metodi: Määrittele staattinen metodi comparePrices(product1, product2), joka ottaa kaksi Product-oliota parametreina ja palauttaa:
    • "Product 1 is more expensive", jos product1 on kalliimpi;
    • "Product 2 is more expensive", jos product2 on kalliimpi;
    • "Both products have the same price", jos hinnat ovat samat.
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
  • Määrittele staattinen ominaisuus nimeltä totalProducts ja alusta se arvoon 0;
  • Konstruktori-metodissa kasvata Product.totalProducts arvoa yhdellä aina, kun uusi Product-olio luodaan;
  • Määrittele staattinen metodi comparePrices(product1, product2), joka ottaa kaksi parametria: product1 ja product2;
  • Käytä comparePrices-metodissa if-lausetta tarkistaaksesi, onko product1.price suurempi kuin product2.price. Jos kyllä, palauta "Product 1 is more expensive";
  • Käytä else if-lausetta tarkistaaksesi, onko product1.price pienempi kuin product2.price. Jos kyllä, palauta "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

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 13
some-alt