Я написал библиотеку на javascript и для оптимизации загрузки хочу разделить код на файлы, которые загружаются динамически при необходимости.
Работает нормально, если я создаю один экземпляр библиотеки, но если я создаю несколько экземпляров, ничего не работает. Вот небольшой пример текущей структуры, которую я использую.
Скрипт на моей странице создает экземпляр объекта "калькулятор", это моя основная библиотека, которая загружается вместе со страницей.
Тогда я вызываю метод (дополнение). Этот метод, который не существует в моей библиотеке «калькулятор», загружается динамически (файл зависимостей). Я использую include.js для динамической загрузки скрипта. Когда я проверяю вкладку сети моего навигатора, файл загружается правильно, но функция не выполняется (в сценарии с несколькими экземплярами)
Если я использую только один экземпляр, это нормально, и консоль показывает 5. Но если я использую другой экземпляр, выходных данных нет, метод Tools.add () не запускается.
Большое спасибо за вашу помощь, я безуспешно перепробовал множество вещей. Мне действительно нужно разбить библиотеку на несколько частей и использовать несколько ее экземпляров. Может быть, у меня нет правильного подхода?
Код на главной html-странице
<script src="component.js"></script>
<script>
var instance1 = new Calculator();
instance1.Addition(2, 3);
var instance2 = new Calculator();
instance2.Addition(4, 6);
</script>
component.js
var Calculator = function () {
this.Addition = function (a, b) {
include(['dependency.js'], function () {
console.log(Tools.add(a, b));
});
};
this.Multiply = function (a, b) {
console.log(a * b);
};
};
dependency.js, который загружается динамически
var Tools = (function () {
return {
add: function (a, b) {
return a + b;
}
}
})();