Faragha ya Mtindo wa Kale katika OOP katika JavaScript
Tangazo la sifa na mbinu za faragha
kupitia ishara # ilionekana kwenye JavaScript
hivi karibuni tu. Kabla ya hapo ilibidi
kutumia mbinu maalum ya hila.
Kiini cha mbinu hii ni kwamba huwekana makubaliano ya kwamba majina ya sifa na mbinu za faragha yanapaswa kuanza na ishara ya under_score. Kwa ukweli majina kama hayo hayatakuwa ya faragha, lakini tunakubaliana kwamba hautayatumia kutoka nje ya darasa.
Wacha tujaribu. Tufanye sifa ya faragha kwa mtindo huu:
class User {
constructor(name) {
this._name = name;
}
show() {
return this._name;
}
}
Tutengeneze kitu cha darasa:
let user = new User('john', 'smit');
Tuita mbinu, inayoonyesha thamani ya sifa yetu:
console.log(user.show());
Jaribio la kurejea kwenye sifa kutoka nje ya darasa halitasababisha hitilafu:
console.log(user._name); // hakuna hitilafu
Katika msimbo unaofuata fanya sifa ziwe za faragha:
class Employee {
constructor(name, salary) {
this._name = name;
this._salary = salary;
}
getName() {
return this._name;
}
getSalary() {
return this._salary;
}
}
Katika msimbo unaofuata fanya mbinu ya usaidizi iwe ya faragha:
class Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this._addSign(this.salary);
}
_addSign(num) {
return num + '$';
}
}