Angular2 - 调用构造函数()vs new关键字来创建一个对象?

时间:2016-02-16 03:23:38

标签: angular

我浏览了Angular2教程,我无法真正理解以下内容之间的区别:

constructor(private _heroService: HeroService) { } 

并创建一个对象,例如

var _heroService: HeroService = new HeroService();

你可以澄清一下吗?

2 个答案:

答案 0 :(得分:2)

将对象声明为构造函数参数使其成为Dependency Injection系统的一部分。它通常与服务一起使用,并确保服务是单身。

使用new关键字实例化对象用于创建不可注入的对象,通常是数据模型。在测试(简单)服务时,有时也会使用它。

答案 1 :(得分:2)

构造函数

constructor(private _heroService: HeroService) { } 

时执行

new SomeComponent();
执行

,其中构造函数定义需要将哪些参数传递给new Xxx(...)。例如:

new SomeComponent(new HeroService);

如果Angular new Xxx(...)创建了一个新实例,则由Angulars DI执行,它会确定从构造函数中自动传递的参数。

如果没有定义构造函数的默认构造函数

constructor(){} 

会自动添加到课程中。

相关问题