Измените эти строки:
module.exports.create = function() {
return new mySuperClass();
}
module.exports._class = mySuperClass;
к этому:
module.exports = mySuperClass;
Функция require возвращает значение модуля module.export
. Если вы установите это значение для конструктора вашего класса, он вернет тот конструктор, который вы можете использовать, как в своем примере использования.
В настоящее время вы пытаетесь вызвать в качестве конструктора объект, похожий на { create: function () { ... }, _class: function (ar) { ... } }
(значение module.exports
в вашей функции). Этот объект не является функцией, поэтому об этом сообщается в сообщении об ошибке.
Однако одно только это решение не сделает ваш класс функционирующим должным образом (если я правильно понимаю, что должен делать ваш класс), потому что экземпляры класса совместно используют глобальную переменную _i
.