在angular2中创建对象类时,我应该在内联或构造函数中初始化值吗?有区别吗?
export class Foo {
id: string;
name: string = '';
url: string = '';
}
VS
export class Foo {
id: string;
name: string;
url: string;
constructor() {
this.name = '';
this.url = '';
}
}
答案 0 :(得分:2)
初始化内联属性更简洁,并且在声明的上下文中保留属性的默认值。
在构造函数中初始化属性允许您在初始化属性时利用构造函数参数。您还可以将声明顺序与初始化值的顺序分开(例如,如果一个属性的起始值取决于另一个属性的起始值)。
如果你不需要构造函数给你的灵活性,你应该使用哪一个很大程度上取决于个人风格偏好。
答案 1 :(得分:2)
两者之间生成的JS没有区别。编译TypeScript编译器时,只需在构造函数内部初始化内联值。