RequireJS, круговые зависимости и экспорт «магический» метод
Я пытался настроить RequireJS для обработки циклических зависимостей, используяспециальный волшебный модуль «экспорт» в соответствии с рекомендациямиДжеймс Берк ответ вэтот вопрос.
Следуя примеру, приведенному @jrburke в этом вопросе:
define("Employee", ["exports", "Company"], function(Company) {
function Employee(name) {
this.name = name;
this.company = new Company.Company(name + "'s own company");
};
exports.Employee = Employee;
});
define("Company", ["exports", "Employee"], function(Employee) {
function Company(name) {
this.name = name;
this.employees = [];
};
Company.prototype.addEmployee = function(name) {
var employee = new Employee.Employee(name);
this.employees.push(employee);
employee.company = this;
};
exports.Company = Company;
});
Проблема в том, что, используя его собственный пример,exports
модуль не определен, и поэтомуexports.Employee
а такжеexports.Company
не установлен Если я пытаюсь включить экспорт в качестве аргумента определяемых функций обратного вызова, он просто инициализируется в обоих случаях как пустой и не несет функций конструктора, которым он был назначен.
Что я делаю неправильно?
РЕДАКТИРОВАТЬ: Методом проб и ошибок, я получил вышеуказанный код, работающий на:http://jsfiddle.net/jpk45vow/4/, Может кто-нибудь объяснитьЗачем это работает, потому что это не имеет смысла для меня.