2016-11-27 7 views
0

Je suis sûr que cela a déjà été répondu, donc je m'excuse humblement à l'avance.Définition d'une variable globale pour une classe dans le constructeur Angular 2

J'ai remarqué que définir une variable private dans le constructeur permet au reste de la classe d'utiliser la variable.

EX:

constructor(private foo : bar) { } 

... 
later in code 
... 

this.foo 

Ma question est simple - pourquoi ça marche?

(ce qui est angulaire et tapuscrit faire en arrière-plan?)

+2

Pourquoi ne regardez-vous pas le fichier js transpiled? – echonax

+0

Je le ferai la prochaine fois. Je m'excuse de ne pas le faire à l'avance – Gabrielus

+0

Copie possible de [Syntaxe des propriétés membres et des constructeurs dans le typecript 2 angulaire] (http://stackoverflow.com/questions/36683698/syntax-of-member-properties-and-constructors-in- angulaire-2-tapuscrit) – Fiddles

Répondre

6

Parce que tapuscrit est défini de cette façon. Le préfixage d'un paramètre constructeur avec private ou public crée implicitement une propriété correspondante dans laquelle la valeur est affectée. C'est juste une forme courte (sucre syntaxique) de

private foo:bar; 
constructor(foo:bar) { 
    this.foo = foo; 
}