@jallvar

Как в javascript импортировать класс?

Всем привет. Искал в интернете, но так и не понял.
Есть у меня самый обычный класс. Объект которого надо создать из другого файла
Класс:
class Shop {
    #products = []

    addProducts(products)
    {
        var newProducts = [];

        products.forEach(function (product) {
            newProducts[product["id"]] = new product(
                product["id"],
                product["name"],
                product["description"],
                product["price"]
            );
        });

        this.#products = this.#products.concat(newProducts);

        return this;
    }

    getProduct(id)
    {
        return this.#products[id];
    }
}

module.exports.Shop = Shop;


Что я пытаюсь сделать:
require("Shop");
var shop = new Shop();

Что мне говорит интерпретатор:
Cannot find module 'C:\OpenServer\domains\TestTask\Main.js'

В php вроде все понятно есть include и создавай объект класса. Но как грамотно сделать это в js ООП
  • Вопрос задан
  • 597 просмотров
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347
Crazy on performance...
const {Shop} = require('Shop');
const shop = new Shop();


Ну и пару замечаний:
1. Вместо product["id"], product["name"] можно писать product.id, product.name, поля же известны заранее, незачем усложнять
2. newProducts должен быть объектом {}, а не массивом [], так как ключи - произвольные id, поле #products тоже у Вас не особо на массив похоже
3. используйте let или const вместо var
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы