Лайфхак по созданию нового класса

...в зависимости от условий, на основе заготовленного словарика

by shurikation

JavaScript

//Урок 4 - Шапошников 16-17 минута - разбор ДЗ и про это в частности:


//Лайфхак - создание словарика для того, чтобы создать новый класс в зависимости от входящих данных,условий, и чо надо в данный момент

//Дочернние классы
class ProductItem {
}
//...
class CartItem {
}
//Создание словарика вне {} всех классов:
const list = {
	ProductList: ProductItem,
  Cart: CartItem
}

//В зависимости от того ProductItem или CartItem -  будет вызываться метод создания в базовом классе Item, который принимает ProductItem или CartItem в качестве аргумента list - будет создан или новый ProductItem или CartItem. Мы сслаемся на словарик в базовом классе, который создали в дочернем классе, например.

//Базовый класс:
class Item {
constructor(img, url, list) {
 //...
 	this.list = list; //ProductItem или CartItem на вход принимаем
}
//...
	render() {
//...
const productObj = new this.list[this.constructor.name](); //В зависимости от параметра на входе гененируем нужный нам хоть любой класс автоматически, а не вручную
 }
}