您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何使用RequireJS / AMD处理循环依赖关系?

如何使用RequireJS / AMD处理循环依赖关系?

这确实是AMD格式的限制。您可以使用导出,该问题就消失了。我发现导出很丑陋,但这是常规CommonJS模块如何解决此问题的方法

define("Employee", ["exports", "Company"], function(exports, Company) {
    function Employee(name) {
        this.name = name;
        this.company = new Company.Company(name + "'s own company");
    };
    exports.Employee = Employee;
});
define("Company", ["exports", "Employee"], function(exports, 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;
});

否则,您在消息中提到的require(“ Employee”)也将起作用。

通常,对于模块,您需要更加了解循环依赖性,无论是否存在AMD。即使在普通的JavaScript中,也必须确保在示例中使用类似G对象的对象。

其他 2022/1/1 18:15:23 有425人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶