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;
});

jsfiddle

Проблема в том, что, используя его собственный пример,exports модуль не определен, и поэтомуexports.Employee а такжеexports.Company не установлен Если я пытаюсь включить экспорт в качестве аргумента определяемых функций обратного вызова, он просто инициализируется в обоих случаях как пустой и не несет функций конструктора, которым он был назначен.

Что я делаю неправильно?

РЕДАКТИРОВАТЬ: Методом проб и ошибок, я получил вышеуказанный код, работающий на:http://jsfiddle.net/jpk45vow/4/, Может кто-нибудь объяснитьЗачем это работает, потому что это не имеет смысла для меня.

Ответы на вопрос(1)

Ваш ответ на вопрос