Javascript中任意参数顺序构造调用的实现



我是angular/js/ts的新手,我正在努力弄清楚依赖注入在angular中是如何工作的。

到目前为止,很多事情都很清楚,但我不明白angular如何在不知道构造函数定义中定义依赖项的顺序的情况下调用组件构造函数并注入依赖项。

只是为了有一个上下文。以Angular.io入门的这个简单修改为例。

当我定义组件product-list.component.ts的构造函数时,我可以使用这两个构造函数定义,一切都正常。

//definition 1
constructor(s2: S2Service, s1: S1Service){
s1.log();
s2.log();
}
//definition 2
constructor(s1: S1Service, s2: S2Service){
s1.log();
s2.log();
}

框架如何知道我定义组件构造函数的顺序?Angular是如何调用这个构造函数的?

如果你想要一个更简单的例子。让我们假设我们想要定义一个具有构造函数的类,该构造函数接受4个参数(具有4种不同的类型(。我们如何编写构造函数,以便在不定义倍数(24?(不确定(的情况下,按每个可能的顺序接受4个参数?(构造函数定义,而不使用命名参数或某种对象封装,就像Angular框架一样?

按类型。它接受要注入的类型,并在构造函数参数中查找该类型。

最新更新