Calocybe: Globale Variablen in einer function erzeugen.

Beitrag lesen

Moin!

Alle Variablen sind global wenn sie nicht mit "var" deklariert sind, egal wo dies geschieht.

Schoen, dass endlich mal jemand wirklich weiss, was die Begriffe global und lokal bedeuten. Insbesondere ist eine Variable nicht lokal, nur weil ich sie innerhalb einer Funktion das erste mal benutze, sondern nur deshalb, weil ich sie dort mit var deklariere.

Nun zu den Objekten:
function testObject()
{
    this.name;
}
this.name ist eine Eigenschaft der Klasse "testObject".

Nicht unbedingt. Nur wenn Du ein Objekt mit
  var x = new testObject();
erzeugst. testObject kann aber auch eine ganz normale Methode eines (andersnamigen) Objekts sein. Wenn man dann x.testObject() aufruft, zeigt this ebenfalls korrekt auf x.

Wenn man in einer Klasse var name= "xyz" schreibt, hat man eine Klassenvariable (keine Eigenschaft) die nur in dieser Klasse sichtbar ist - sie ist nicht ueber das Objekt zu erreichen.

Man kann sowas nicht "in einer Klasse" schreiben. Man kann sowas in einer Funktion schreiben, die als Methode einer Klasse dient. Das ist dann aber eine ganz normale funktionslokale Variable und hat nichts mehr mit der Klasse zu tun.

Wenn man in der Klasse nur name="xyz" schreibt dann verfuegt man ueber eine ganz normal globale Variable ohne Bezug auf eine Klasse oder einem Block.

Stimmt. Nur wenn man
  objekt.eigenschaft = "irgendwas";
schreibt, wobei fuer objekt innerhalb einer Klassenmethode das reservierte Wort this stehen kann, greift man auf eine Objekteigenschaft zu.

So long