Estoy comenzando en angular2, y me pregunto acerca de este código.
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'); } }En este momento tengo myHero inicializado en la parte superior, pero me pregunto, ¿qué va en la parte superior, qué debería estar dentro del constructor y qué va dentro de ngOnInit?
Porque, hasta donde yo sé, si está en la parte superior, se ejecuta de inmediato, lo mismo con el constructor y ngOnInit.
Entonces, ¿cuál es la diferencia y qué es correcto?
Gracias
Asignar los valores en la declaración y en el constructor es exactamente lo mismo, de hecho, la versión compilada de esto:
class HeroesComponent implements OnInit { myHero: Hero = new Hero('Superman', 'Clark Kent'); }Es:
var HeroesComponent = (function () { function HeroesComponent() { this.myHero = new Hero('Superman', 'Clark Kent'); } return HeroesComponent; }()); En cuanto a eso frente ngOnInit , depende de si el constructor de Hero depende o no de algo que podría no estar listo antes de que se ngOnInit .