javascript - AngularJS - 是依赖注入(inject)还是多重继承?

标签 javascript angularjs oop dependency-injection

大部分documentation我已阅读有关 AngularJS 的内容谈论依赖注入(inject)。

当定义一个 Controller 时,您可以注入(inject)其他类到其中,使调用类可以访问它们的操作/属性。

因此,我已经说过,定义了一个 contentTypeFactory,然后我将其注入(inject)contentTypeController 中,因此我获得了所有好处工厂并可以调用其中的属性和方法。

即:app.controller('contentTypeController', ['$scope', '$log', 'contentTypeFactory', ...

从面向对象的 Angular 来看,这看起来很像多重继承,而不是依赖注入(inject)。

有人可以澄清一下吗?

最佳答案

我认为简单的答案是你所描述的不是多重继承。

JavaScript 支持原型(prototype)继承,这不是多重继承。

当你使用依赖注入(inject)时,你更喜欢组合而不是继承。依赖关系是“HAS A”关系。这不是“IS A”关系。

在您的特定场景中,您的 Controller “有一个”contentTypeFactory。它不是 contentTypeFactory。您的 Controller 将工作委托(delegate)给它。

我希望这能回答您的问题。

关于javascript - AngularJS - 是依赖注入(inject)还是多重继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21706783/

相关文章:

javascript - RxJS 中有publishOnce 类型的运算符吗?

javascript - 如何让Access Control Header跨域访问远程API?

javascript - 我可以在 Angular Material 中使用 md-select 来运行函数吗?

oop - 确保嵌入式结构实现接口(interface)而不引入歧义

javascript - imagemin :dist task throwing error

javascript - 如何用javascript替换IE8 css表达式

javascript - Angular 为什么不更新值

c++ - 如何在 C++ 中将派生对象作为基对象传递给函数

java - 同名调用的非覆盖子类方法

javascript - jquery Map() 不适用于 html 列表