【问题标题】:Initialization of components class variables [duplicate]组件类变量的初始化[重复]
【发布时间】:2017-07-26 22:12:36
【问题描述】:

我从 angular2 开始,我想知道这段代码

export class HeroesComponent implements OnInit {

    // Version 1
    myHero: Hero = new Hero('Superman', 'Clark Kent');

    // Version 2, 3
    // myHero: Hero;

    constructor() {
        // Version 2
        // this.myHero = new Hero('Superman', 'Clark Kent');
    }

    ngOnInit() {
        // Version 3
        // this.myHero = new Hero('Superman', 'Clark Kent');
    }

}

现在我已经在顶部初始化了 myHero,但我想知道,顶部是什么,构造函数内部应该是什么以及 ngOnInit 内部是什么?

因为据我所知,如果它在顶部,它会立即执行,与构造函数和ngOnInit相同?

那么有什么区别,什么是正确的?

谢谢

【问题讨论】:

    标签: angular typescript


    【解决方案1】:

    在声明和构造函数中赋值是完全一样的,其实就是这个的编译版本:

    class HeroesComponent implements OnInit {
        myHero: Hero = new Hero('Superman', 'Clark Kent');
    }
    

    是:

    var HeroesComponent = (function () {
        function HeroesComponent() {
            this.myHero = new Hero('Superman', 'Clark Kent');
        }
        return HeroesComponent;
    }());
    

    对于ngOnInit,这取决于Hero 的构造函数是否依赖于在ngOnInit 被触发之前可能尚未准备好的任何东西。

    【讨论】:

      猜你喜欢
      • 2015-03-10
      • 1970-01-01
      • 1970-01-01
      • 2019-06-17
      • 1970-01-01
      • 1970-01-01
      • 2016-11-03
      • 1970-01-01
      • 2017-01-21
      相关资源
      最近更新 更多