A magánjellegűség régi stílusban az OOP-ben JavaScriptben
A magántulajdonságok és módszerek deklarálása
a # szimbólumon keresztül
nemrégiben jelent meg a JavaScriptben.
Előtte speciális trükkös
módszert kellett használni.
Ennek a módszernek a lényege, hogy megállapodás kötődik arról, hogy a magántulajdonságok és módszerek neveinek aláhúzásjellel kell kezdődniük. Valójában ezek a nevek nem lesznek magánjellegűek, de megállapodunk abban, hogy nem használjuk őket a osztályon kívül.
Próbáljuk ki. Készítsünk magántulajdonságot ebben a stílusban:
class User {
constructor(name) {
this._name = name;
}
show() {
return this._name;
}
}
Hozzunk létre egy objektumot az osztályból:
let user = new User('john', 'smit');
Hívjuk meg a metódust, amely kiírja a tulajdonságunk értékét:
console.log(user.show());
A tulajdonsághoz való hozzáférési kísérlet az osztályon kívül nem vezet hibához:
console.log(user._name); // nincs hiba
A következő kódban tegye a tulajdonságokat magánjellegűvé:
class Employee {
constructor(name, salary) {
this._name = name;
this._salary = salary;
}
getName() {
return this._name;
}
getSalary() {
return this._salary;
}
}
A következő kódban tegye a segédmetódust magánjellegűvé:
class Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this._addSign(this.salary);
}
_addSign(num) {
return num + '
;
}
}