JavaScript'te Eski Tarz OOP'de Gizlilik
Özel özelliklerin ve metotların bildirimi
# sembolü ile JavaScript'te
çok yakın zamanda ortaya çıktı. Bundan önce
özel bir hileli yöntem kullanmak gerekiyordu.
Bu yöntemin özü, özel özelliklerin ve metotların isimlerinin alt çizgi sembolü ile başlaması gerektiği konusunda bir anlaşma yapılmasıdır. Gerçekte bu isimler özel olmayacak, ancak onları sınıfın dışından kullanmayacağımız konusunda anlaşıyoruz.
Deneyelim. Bu tarzda özel bir özellik yapalım:
class User {
constructor(name) {
this._name = name;
}
show() {
return this._name;
}
}
Sınıfın bir nesnesini oluşturalım:
let user = new User('john', 'smit');
Değerini gösteren metodu çağıralım özelliğimizin:
console.log(user.show());
Sınıfın dışından özelliğe erişme girişimi hata vermez:
console.log(user._name); // hata yok
Aşağıdaki kodda özellikleri özel yapın:
class Employee {
constructor(name, salary) {
this._name = name;
this._salary = salary;
}
getName() {
return this._name;
}
getSalary() {
return this._salary;
}
}
Aşağıdaki kodda yardımcı metodu özel yapın:
class Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this._addSign(this.salary);
}
_addSign(num) {
return num + '₺';
}
}