Всем привет. Пытаюсь сделать такую вещь используя RequireJS:
1. Есть скрипт Script1.js, который выполняет какие-то действия с данными из скрипта DB.js.
2. Есть скрипт Script2.js, который так же выполняет какие-то действия с данными из скрипта DB и подгружается этот скрипт из script1.js.
3. Есть сам скрипт DB, который просто имеет переменные с необходимыми данными.
Примерный кусок кода:
//Script1.js
define(["DB", "Script2"], function (DB, Script2) {
return function Script1() {
console.log(DB); //выводит function () { }, всё круто
this.script2 = new Script2();
}
);
//Script2.js
define(["DB"], function (DB) {
return function Script2(cid) {
console.log(DB); //выводит undefined, не то, что хотелось бы
}
});
//DB.js
define(function () {
//сюда код попадает единственный раз, когда RequireJS подключает его из Script1.js
var DB = function () {};
DB.someData = { one: "two" };
return DB;
});
В Script2.js в переменную DB почему-то приходит undefined. Т.е. типа файл DB уже подгружался однажды, и RequireJS решил просто ничего не делать и не возвращать. Я уверен, что он знает, что делает, но хочется узнать как всё таки получить то, что я у него прошу? DB - это такое некое подобие "класса" со статическими свойствами. В данной реализации пока пытался решить проблему я понял, что то, что сейчас написано если бы и работало как я думал, то каждый раз возвращалась бы новая функция-конструктор DB, а хотелось бы ссылку на созданную в начале. В общем, пытался объяснить как мог, итог: приходит undefined, хотя я ожидал функцию-конструктор DB. Если вы помочь хотите, но проблемы не поняли, я попытаюсь объяснить подробнее