JavaScript-də KOH-də Köhnə Üsulla Məxfilik
Məxfi xassələrin və metodların elanı
# simvolu vasitəsilə JavaScript-də
çox yaxınlarda peyda oldu. Bundan əvvəl
xüsusi bir hiylə qəbulundan istifadə etmək
lazım gəlirdi.
Bu qəbulun mahiyyəti ondadır ki, məxfi xassələrin və metodların adlarının altxətt simvolu ilə başlaması barədə razılaşma olur. Əslində bu cür adlar məxfi olmayacaq, lakin biz razılaşırıq ki, onları sinifdən kənarda istifadə etməyəcəyik.
Gəlin yoxlayaq. Bu üsulla məxfi bir xassə yaradaq:
class User {
constructor(name) {
this._name = name;
}
show() {
return this._name;
}
}
Sinifdən bir obyekt yaradaq:
let user = new User('john', 'smit');
Xassəmizin dəyərini çıxaran metodu çağıraq:
console.log(user.show());
Xassəyə sinifdən kənardan müraciət etməyə cəhd xəta ilə nəticələnməyəcək:
console.log(user._name); // xəta yoxdur
Aşağıdakı kodda xassələri məxfi edin:
class Employee {
constructor(name, salary) {
this._name = name;
this._salary = salary;
}
getName() {
return this._name;
}
getSalary() {
return this._salary;
}
}
Aşağıdakı kodda köməkçi metodu məxfi edin:
class Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this._addSign(this.salary);
}
_addSign(num) {
return num + '$';
}
}