function createShape(shapeClass, x, y) {
// интерпретатор ругается, что shapeClass - не является конструктором! (то есть он воспринимает это не как переменную, а как имя класса!) Как исправить? (в console.log выводятся значения, всё ОК!)
var shape = new shapeClass(x, y, currentSize);
// ... код...
return shape;
}
Пример вызова:
document.addEventListener('click', function(e) {
var shape = e.target.dataset.shape;
if (shape && shapeMap.hasOwnProperty(shape)) { // передаём Класс из карты соответствий
var shape = createShape(shapeMap[shape]);
app.setCurrentShape(shape);
}
});
// карта соответствий
const shapeMap = {
circle: 'Circle',
quad: 'Quad',
triangle: 'Triangle'
};
В объекте shapeMap
хранятся строки.
Строки – это объекты, а объекты не могут использоваться в качестве конструктора.
Для решения можно хранить в словаре не имена, а сами классы:
const shapeMap = {
circle: Circle,
quad: Quad,
triangle: Triangle
};
Пытаюсь создать свой первый userscript (Chrome + Violentmonkey)
Есть форма и массивКак сделать, чтобы по щелчку по кнопке заполнилась форма соответственно ключам?
Говорю сразу - JS изучаю совсем недавно, ошибка может быть очень глупой Не работает событие onclick Фрагмент кода HTML: