微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 在构造函数angular 2中声明属性

我是一个刚刚登陆角度2的java程序员.在做官方教程时,我很惊讶地看到他们在构造函数中声明了这个属性而不是类的顶层.

我知道Java和JS是非常不同的,但在这样做之间有任何技术原因

  constructor(private router: Router ,private heroService: HeroService) {}

或者像这样

private router: Router
private heroService: HeroService

constructor( ) {}

解决方法:

这个:

private router: Router
private heroService: HeroService

只声明您的类型为Router和HeroService的两个私有属性,

这个:

constructor(private router: Router, private heroService: HeroService) {}

注入一个Router(和HeroService)实例,另外创建两个私有属性,并在一个语句中将注入的服务实例分配给这些属性.

为了更好地理解,这也是一样的:

private _router: Router;
private _heroService: HeroService;

constructor(router: Router, heroService: HeroService) {
    this._router = router;
    this._heroService = heroService;
}

使用“第一种方法”,您没有这些服务的实例.

旁注:提供者:[Router,HeroService]你可能在你的一个Component Anntations中的某个地方给你的组件注入它们的可能性,但实际上并没有这样做,这就是为什么你可能最终总是通过你的构造函数注入它们方法.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐