javascript - javascript模块化和依赖注入(inject)之间的区别

标签 javascript dependency-injection theory modularization

javascript 代码的模块化(以 browserify 为例)和依赖注入(inject)有什么区别?

它们是同义词吗?两人要在一起吗?还是我遗漏了一些要点?

最佳答案

模块化是指将代码分解成单独的、独立的“包”。
依赖注入(inject)是指不硬编码对其他模块的引用。

作为一个实际的例子,你可以编写不使用依赖注入(inject)的模块:

import { Foo } from 'foo';

export function Bar() {
    return Foo.baz();
}

这里有两个模块,但是这个模块导入了一个特定的其他硬编码模块。

使用依赖注入(inject)编写的相同模块:

export function Bar(foo) {
    return foo.baz();
}

然后其他人可以将其用作:

import { Foo } from 'foo';
import { Bar } from 'bar';

Bar(Foo());

在调用时注入(inject) Foo 依赖项,而不是对依赖项进行硬编码。

关于javascript - javascript模块化和依赖注入(inject)之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36770302/

相关文章:

javascript - 无法发布/错误 Node.JS

c# - 由于循环作用域回调引用导致 ninject 内存泄漏

java - Spring Boot @Autowired 在运行时创建实例

arrays - 用于共享数组子范围的智能垃圾收集器?

javascript - 将声明性绑定(bind)与 API 数据结合使用

javascript - AngularJS UI-Select 标记不适用于 Google Chrome 中的新标记

.net-core - 无法使用 DI 内部函数与 .net core Azure Web 作业中的 ServiceBusTrigger 参数绑定(bind)服务实现

algorithm - 在比 O((k+N) * 2^(N/2)) 更快的范围内生成所有子集总和?

nosql - CouchDB 建模 - 时间过滤和分组数据

javascript - 将js变量插入html href标签