Das was du bei Java und c# unter Privat und global Variable verstehst gibt es in ECMA_Script(JavaScript) nicht. Das hat was mit der Objektorientierung zu tun.
In Java hast du ein Klassenbasierte Objektorientierung, wen eine Klasse in Java einmal initialisiert wurde kannst die sie zur Laufzeit nicht mehr verändern. In ECMA geht das sehr wohl dafür hast du aber auch kein richtige Klassenbasierte Objektorientierung.
Global Java:
Code:
public class Example {
public static int a;
public static int b;
}
Via Example.a hast du Zugriff auf die Globale Variable a im der Klasse Example.
Da was man in Javascript unter Globale Variable versteht , ist eine Variable die Außerhalb eines Funktionsobjektes steht oder ohne das Schlüsselwort "var" erstellt wurde.
Du kannst in JavaScript auch ein Funktionsobjekt erstellen z.B Auto wenn du in das Objekt nun via des Schlüsselworts this auch "globale variabelen " erstellen die sind dann in den Objekt Auto global.
Also
Code:
function Auto(){
this.Vmax = 250;
var tankinhalt = 56;
}
Auto.prototype.getTankinhalt = function(){
return tankinhalt
}
Dieser code funktioniert nicht weil Tankinhalt nur im Konstruktor bekannt ist, würdest du das Schlüsselwort var weglassen hast du eine Globale Variable die ist dann auch in getTankinhalt bekant.
this.Vmax ist in deinem gesamten Objekt bekannt und kannst du überall im Objekt Auto verwenden.
Wie hesst schon verlauten lassen hat geht es hierbei nur um ein Überschichts Sache, an dem Technischen ablauf verändert sich nichts. Ein Debugger kann immer zur Laufzeit Variablen einsehn und ändern.
Es gibt 2 Videos die sollte man einfach mal ansehn ob man die versteht ist erst mal tivial. Irgendwann fällt dir dann ein Ah.. das habe ich schon mal irgendwo gesehen /gehört.
und
https://www.youtube.com/watch?v=2pL28CcEijU