我是 TypeScript 世界的新手,我看过用它处理注入(inject)对象并将其设置为组件属性 (this.anything) 的示例
首先公开并手动设置到 this.nav
export class XPTO {
constructor(public nav: NavController) {
this.nav = nav;
}
}
还有这个,有私有(private)的
export class XPTO {
constructor(private nav: NavController) {
//this.nav is nav?
}
}
在这两种情况下,在构造对象后 this.nav 都是一个 NavController 对象。 两种实现方式有何区别?或者当编译为普通 javascript 时这也是一样的?
最佳答案
实际上,在您的第一个示例中,根本不需要显式赋值:
export class XPTO {
constructor(public nav: NavController) {
// This line is not required.
// this.nav = nav;
this.someFunction();
}
someFunction(){
console.log(this.nav); // Prints out the NavController.
}
}
每当您在构造函数参数上指定 public 或 private 时,都会在类上创建相应的公共(public)/私有(private)变量并填充参数的值。
实际上,这两个代码示例的唯一区别是一个是私有(private)的,另一个是公共(public)的。
生成的 JavaScript 将是相同的。但是,如果您尝试访问代码中的私有(private)变量,编译器将抛出错误。
关于javascript - TypeScript:在构造函数中使用 private 或 public,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39840606/