以下代码段是自定义指令的一部分:
@Directive({
selector: '[appBasicDirective]'
})
export class BetterHighlightDirective implements OnInit {
@HostBinding('style.backgroundColor') backgroundColor = 'transparent';
constructor(private el: ElementRef, private renderer: Renderer2) { }
ngOnInit(): void {
this.renderer.setStyle(this.el.nativeElement, 'background-color', 'blue');
}
......
由于它们没有显式初始化,因此Angular如何在内部初始化构造函数参数?如果我将随机参数扔进去,就像这样:
constructor(private el: ElementRef, private renderer: Renderer2,
private foo: ElementRef, private bar: Renderer2) { }
它仍然可以正常工作而没有任何警告。那么foo
和bar
的值是什么?
答案 0 :(得分:0)
组件构造函数中的参数为Dependency Injectors。初始化组件时,它会创建每个类或提供程序的实例,这些实例或构造程序称为构造函数参数(DI)。因此,添加更多参数只会创建注入的类的更多实例。这里的foo
和bar
仅仅是ElementRef
和Renderer2
的实例。