什么是不同的使用angular2构造函数中的private vs public关键字()

时间:2017-03-09 10:36:34

标签: angularjs ionic-framework constructor private public

我开始学习角度v2和离子v2。

在ng2英雄教程中,他们在构造函数中使用私有关键字,但在离子样板源中,他们在构造函数中使用public关键字。

angular2教程

constructor(public navCtrl: NavController, public navParams: NavParams) {
}

离子教程

es5

在反编译到.js之后,.column-image > div picture > img{ opacity: 0; animation-name: fadein; animation-duration: 3s; animation-iteration-count: 1; animation-fill-mode: forwards; -webkit-animation-name: fadein; -webkit-animation-duration: 3s; -webkit-animation-iteration-count: 1; -webkit-animation-fill-mode: forwards; } #c1163 > div > div:nth-child(2) > div picture > img{ animation-delay: 0.5s; -webkit-animation-delay: 0.5s; } #c1163 > div > div:nth-child(6) > div picture > img{ animation-delay: 1s; -webkit-animation-delay: 1s; } #c1163 > div > div:nth-child(7) > div picture > img{ animation-delay: 1.5s; -webkit-animation-delay: 1.5s; } #c1163 > div > div:nth-child(11) > div picture > img{ animation-delay: 2s; -webkit-animation-delay: 2s; } #c1163 > div > div:nth-child(12) > div picture > img{ animation-delay: 2.5s; -webkit-animation-delay: 2.5s; } @keyframes fadein { from { opacity:0; } to { opacity:1; } } @-moz-keyframes fadein { from { opacity:0; } to { opacity:1; } } @-webkit-keyframes fadein { from { opacity:0; } to { opacity:1; } } @-o-keyframes fadein { from { opacity:0; } to { opacity: 1; } } 文件中的public和private是相同的。 但我真的不明白其中的区别。

3 个答案:

答案 0 :(得分:1)

我认为Ionic样板代码使用了constirctors中的公共成员,以便能够利用Ahead of Time (AoT) Compilation。 请参阅Angular 2 Ahead-of-Time compiler: must I make all class properties public?

答案 1 :(得分:1)

这是"参数属性"的特征。打字稿。当我们使用任何关键字Public,Private,Protected或readonly时,它会自动创建并初始化class属性。请检查https://medium.com/@daveford/parameter-properties-in-typescript-c99df6ba13f7

答案 2 :(得分:0)

私有和公共仅适用于编译时而非运行时。默认情况下,函数是公开的,将某些内容标记为“私有”只是宣告您将其保密的意图。