Использовать rest оператор. Синтаксис остаточных параметров функции позволяет представлять неограниченное множество аргументов в виде массива. Тут стоит учесть что тут классы передаются последним аргументом, и всё что будет передано, попадет в этот массив. Так что следует передавать желаемые классы последними. Тут мы получаем массив classes со всеми переданными в него классами, перебираем его так как это массив, и каждый элемент внутри добавляем с помощью метода add объекта classList.
function Modal(id, text, ...classes) {
this.id = id;
this.classes = classes;
this.text = text;
this.render = function () {
this.classes.forEach((classes) => {
this.modWind.classList.add(classes);
});
this.modWind = document.createElement('div');
this.modWind.id = this.id;
return this.modWind;
};
}
const modal = new Modal(
'anyID',
'modal window text',
'class1',
'class2',
'class3'
);
root.append(modal.render());
Так же предлагаю вам посмотреть вот такой вот синтаксис создания классов.
class Modal {
constructor(id, text, ...classes) {
this.id = id;
this.classes = classes;
this.text = text;
this.render();
}
render() {
const modWind = document.createElement('div');
modWind.setAttribute('id', this.id);
this.classes.forEach((classes) => {
modWind.classList.add(classes);
});
root.append(modWind);
}
}
new Modal('anyID', 'modal window text', 'class1', 'class2', 'class3');
Внутри метода render, мы выполняем нужные нам действия и уже "аппендим" его в нужный нам элемент. Так же обратите внимание что внутри конструктора уже вызван метод рендер, так что он будет вызван в момент создания экземпляра, не нужно будет дополнительно его вызывать, тут на свой вкус и цвет. Так же обратите внимание что если вы один раз хотите выполнить эту операцию и забыть о ней без создания дополнительных переменных можно вызвать его как на примере в последней строке.