Объектно-ориентированное программирование в Javascript

Рейтинг: -2Ответов: 1Опубликовано: 03.08.2023

Пытаюсь реализовать класс Order (заказ), который имеет следующие свойства и методы: Свойство orderNumber (номер заказа) - число, уникальный номер заказа. Свойство products (продукты) - массив, содержащий список продуктов в заказе. Метод addProduct(product) - принимает объект product и добавляет его в список продуктов заказа. Метод getTotalPrice() - возвращает общую стоимость заказа, основанную на ценах продуктов.

Мое решение:

class Product {
    constructor(name, price) {
        this.name = name;
        this.price = price;
    } 
}

class Order {
    constructor(orderNumber, products) {
        this.orderNumber = orderNumber;
        this.products = products;
    }

    addProduct(product) {

    }

    getTotalPrice() {
        
    }
}

// то что должно получиться в итоге

const order = new Order(12345);
    
const product1 = new Product("Phone", 500);
order.addProduct(product1);
    
const product2 = new Product("Headphones", 100);
order.addProduct(product2);
    
console.log(order.getTotalPrice()); // Вывод: 600

Пробовал к классу Order присвоить данные из Product с помощью (class Order extends Product), но получается ерунда(((

Ответы

▲ 0

this.products - это массив. Соответственно в методе addProduct нужно класть product в этот массив

В методе getTotalPrice нужно пробежаться по массиву this.products и просуммировать все price из каждого элемента этого массива (каждого продукта). Вернуть результат этого сложения