在 angular2 constructor() 中使用 private 与 public 关键字有什么不同
what is different use private vs public keyword in angular2 constructor()
我开始学习 angular v2 和 ionic v2。
在 ng2 英雄教程中,他们在构造函数中使用了私有关键字,但在离子样板源中,他们在构造函数中使用了 public 关键字。
angular2个教程
heroes: Hero[];
constructor(
private heroS: HeroService,
private router: Router
) { }
ngOnInit() {
this.heroS.getHeroes().then(heroes => {
this.heroes = heroes;
})
}
离子教程
constructor(public navCtrl: NavController, public navParams: NavParams) {
}
反编译成es5
后,public和private在.js
文件中是一样的。
但是我真的不明白有什么区别。
我相信 Ionic 样板代码在构造器中使用 public 成员以便能够利用 Ahead of Time (AoT) Compilation。
请参阅 Angular 2 预编译器:我必须将所有 class 属性设置为 public 吗?
.
private 和 public 仅适用于编译时而不是 运行 时。默认情况下,函数是 public,将某些内容标记为 "private" 只是宣布您打算将其保密。
这是打字稿"Parameter Properties"的特点。当我们使用任何关键字 Public、Private、Protected 或 readonly 时,它会自动创建并初始化 class 属性。请检查 https://medium.com/@daveford/parameter-properties-in-typescript-c99df6ba13f7
我开始学习 angular v2 和 ionic v2。
在 ng2 英雄教程中,他们在构造函数中使用了私有关键字,但在离子样板源中,他们在构造函数中使用了 public 关键字。
angular2个教程
heroes: Hero[];
constructor(
private heroS: HeroService,
private router: Router
) { }
ngOnInit() {
this.heroS.getHeroes().then(heroes => {
this.heroes = heroes;
})
}
离子教程
constructor(public navCtrl: NavController, public navParams: NavParams) {
}
反编译成es5
后,public和private在.js
文件中是一样的。
但是我真的不明白有什么区别。
我相信 Ionic 样板代码在构造器中使用 public 成员以便能够利用 Ahead of Time (AoT) Compilation。 请参阅 Angular 2 预编译器:我必须将所有 class 属性设置为 public 吗? .
private 和 public 仅适用于编译时而不是 运行 时。默认情况下,函数是 public,将某些内容标记为 "private" 只是宣布您打算将其保密。
这是打字稿"Parameter Properties"的特点。当我们使用任何关键字 Public、Private、Protected 或 readonly 时,它会自动创建并初始化 class 属性。请检查 https://medium.com/@daveford/parameter-properties-in-typescript-c99df6ba13f7