【问题标题】:Angular field initialization vs constructor initialization?角场初始化与构造函数初始化?
【发布时间】:2018-02-19 05:33:13
【问题描述】:

是否需要使用角度组件的构造函数来初始化字段?很多角度教程都这样做:

counter: number;

constructor() {
    this.counter = 1;
}

而不仅仅是counter: number = 1

【问题讨论】:

    标签: javascript angular constructor lifecycle


    【解决方案1】:

    两者都是正确的编程方式,

    在构造函数中初始化

    在构造函数中初始化是个好习惯,这是一种声明+初始化的代码分离。

    这将提高您的代码可读性,并且您将确信所有 仅在构造函数中初始化的值。因为在构造函数中是创建对象的时候,也是初始化变量的时候。


    在构造函数之外初始化

    使用构造函数初始化的一个问题是,需要更多代码 写,当你有很多变量可以使用时,在这种情况下你 应该直接使用counter: number = 1,在这种情况下你可以检查 单行声明+初始化,但在上述情况下,您 必须经过两步声明+初始化

    当您在生命周期挂钩(例如NgOnInit / NgAfterViewInit)与constructor 中选择初始化时,这真的很重要。要么只是一种编码风格

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-15
      • 2014-03-21
      • 1970-01-01
      相关资源
      最近更新 更多