gpt4 book ai didi

javascript - ES6 类构造函数参数超过 require

转载 作者:行者123 更新时间:2023-12-01 01:09:52 24 4
gpt4 key购买 nike

当使用 ES6 类时,为什么不通过构造函数传入依赖项,而不是在顶部将它们列为导入/需要:例如

class DEF {
constructor(ABC) {
this.abc = new ABC();
}
}

而不是

const ABC = require('./abc');

class DEF {
constructor() {
this.abc = new ABC();
}
}

我想了解这些编程风格之间的区别以及两者的含义?

最佳答案

这是 Dependency Injection 的一种形式这在各种情况下可能有用。例如用于测试。

通常你会做类似的事情

const DefaultABC = require('./abc');

class DEF {
constructor(ABC = DefaultABC) {
this.abc = new ABC();
}
}

然后在测试文件中提供自定义ABC实现。这可能比模拟模块或劫持模块解析和加载更简单。

关于javascript - ES6 类构造函数参数超过 require,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55262740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com