如何在JavaScript中删除循环依赖项,并且没有使用require('module')
模式的双重性?
让我们有两个应该相同的案例:
// file1.js (depends on file3.js since it uses C2)
class Base {
add() {
this.items.push(new C2());
}
}
// file2.js (depends on file1.js since it uses Base)
class C1 extends Base {
}
// file3.js (depends on file1.js since it uses Base)
class C2 extends Base {
}
介绍循环文件依赖项。
如果我在基类中创建一个实例,通常是不是很糟糕?
右图:
// file1.js (no dependency)
class Base {
}
// file2.js (depends on file1.js and file3.js since it uses Base and C2)
class C1 extends Base {
add() {
this.items.push(new C2());
}
}
// file3.js (depends on file1.js since it uses Base)
class C2 extends Base {
add() {
this.items.push(new C2());
}
}
它不会引入循环文件依赖项,但会复制代码。这两个方法的方法是一样的。想想更长的方法,而不仅仅是一种方法。