Javascript: Muss ich this.var für jede Variable in einem Objekt setzen?

In C ++, der Sprache, mit der ich mich am wohlsten fühle, deklariert man normalerweise ein Objekt wie das folgende:

class foo
{
public:
    int bar;
    int getBar() { return bar; }
}

BerufunggetBar() funktioniert gut (ignoriert die Tatsache, dassbar möglicherweise nicht initialisiert). Die Variablebar innerhalbgetBar() ist im Umfang der Klassefoo, also muss ich nicht sagenthis->bar es sei denn, ich muss wirklich klarstellen, dass ich mich auf die Klasse beziehe. 'bar Anstelle eines Parameters.

Jetzt versuche ich, mit OOP in Javascript zu beginnen. Also schaue ich nach, wie man Klassen definiert und versuche das Gleiche:

function foo()
{
     this.bar = 0;
     this.getBar = function() { return bar; }
}

Und es gibt mirbar is undefined. Wechselnbar zuthis.bar behebt das Problem, aber das macht meinen Code für jede Variable ziemlich unübersichtlich. Ist das für jede Variable notwendig? Da ich keine diesbezüglichen Fragen finde, habe ich das Gefühl, etwas grundlegend Falsches zu tun.

EDIT: Richtig, aus den Kommentaren, die ich bekomme, ist dasthis.bar, eine Eigenschaft eines Objekts, verweist auf etwas anderes alsbar, eine lokale Variable. Kann jemand sagen, warum genau dies in Bezug auf Umfang und Objekte der Fall ist und ob es eine andere Möglichkeit gibt, ein Objekt zu definieren, bei dem dies nicht erforderlich ist?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage