JavaScript-ում OOP-ի հին ոճով առանձնացվածություն
Առանձնացված հատկությունների և մեթոդների հայտարարումը
# նշանի միջոցով հայտնվել է JavaScript-ում
վերջերս։ Մինչ այդ պետք էր
օգտագործել հատուկ խորամանկ
հնարք։
Այս հնարքի էությունը կայանում է նրանում, որ պայմանավորվածություն է կնքվում, որ առանձնացված հատկությունների և մեթոդների անունները պետք է սկսվեն ընդգծման նշանով։ Իրականում նման անունները չեն լինի առանձնացված, բայց մենք պայմանավորվում ենք, որ դրանք դասի之外 չենք օգտագործի։
Փորձենք։ Ստեղծենք առանձնացված հատկություն այս ոճով.
class User {
constructor(name) {
this._name = name;
}
show() {
return this._name;
}
}
Ստեղծենք դասի օբյեկտ.
let user = new User('john', 'smit');
Կանչենք մեթոդը, որը ցուցադրում է մեր հատկության արժեքը.
console.log(user.show());
Դասի之外 հատկությանը դիմելու փորձը սխալի չի հանգեցնի.
console.log(user._name); // սխալ չկա
Հաջորդ կոդում դարձրեք հատկությունները առանձնացված.
class Employee {
constructor(name, salary) {
this._name = name;
this._salary = salary;
}
getName() {
return this._name;
}
getSalary() {
return this._salary;
}
}
Հաջորդ կոդում օժանդակ մեթոդը դարձրեք առանձնացված.
class Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this._addSign(this.salary);
}
_addSign(num) {
return num + '
;
}
}