Szintaxis
Osztályokat létrehozhatunk mint függvényt. A new operátorral példányosítva a függvényen belül a this-t használhatjuk, mint az
aktuális objektumra mutató pointer.
// Osztály
function osztalynev(a, b) {
var u1 = a;
this.v1 = b;
this.tfv = function(x, y) {
this.v1 = x;
u1 = y;
return u1*this.v1;
}
}
// Példányosítás
var fvo = new osztalynev(1, 2);
var x = fvo.tfv(3,4);
// Utólag is lehetőség van még adattagokkal és függvényekkel az objektumot kiegészíteni
fvo.ujTag = 4;
fvo.ujFuggveny = function(a) {
this.ujTag = a;
this.v1 = 2*a;
u1 = 3*a;
}
fvo.ujFuggveny(25);
Láthatósági szabályok
Ahhoz, hogy lehetővé tegyük külső kód számára az osztály tagfüggvényeihez való hozzáférést, a this kulcsszót kell használnunk.
JavaScriptben nincsenek olyan módosítók mint a public, protected, private, de egyszerűen lehet szimulálni a
private osztálytagokat. Ha az osztályon belül nem jegyezzük be this kulcsszóval a változót, akkor csak osztályon belül láthatjuk.
function Osztalynev() {
var adat; // ez egy privát változó
function _setAdat(a) { // privát függvény amit később láthatóvá teszünk
adat = a;
}
function _getAdat() { // privát függvény amit később láthatóvá teszünk
return adat;
}
this.setAdat = _setAdat; // itt tesszük a külvilág számára láthatóvá
this.getAdat = _getAdat; // a már deklarált privát függvényeket
}
var obj = new Osztalynev();
obj.setAdat(5);
alert(obj.getAdat());
Ekkor az Osztalynev osztály adat adattagja csak osztályon belül látható, _setAdat és _getAdat függvényei pedig a setAdat,
getAdat osztálytagokon keresztül érhető el.