Մեթոդների և հատկությունների անունների հակասություններ OOP-ում JavaScript-ում
Հատկությունների և մեթոդների անունները չպետք է համընկնեն, դա կառաջացնի հակասություն: Եկեք նայենք օրինակով: Ենթադրենք ունենք հետևյալ դասը՝
javascriptclass User {
name() {
console.log('method');
}
}
Ստեղծենք այս դասի օբյեկտը՝
javascriptlet user = new User;
Կանչենք դրա մեթոդը, մինչև ամեն ինչ կաշխատի՝
javascriptuser.name(); // աշխատում է
Այժմ գրենք տվյալներ համանուն հատկության մեջ՝ դրանով իսկ ջնջելով մեթոդի կոդը՝
javascriptuser.name = 'str';
user.name(); // սխալ
Նման հակասություններից խուսափելու համար միշտ տվեք մեթոդներին բայ-անուններ, իսկ հատկություններին՝ գոյական-անուններ:
Задание 1
Ուղղեք սխալը, որը թույլ է տրվել հետևյալ կոդում՝
javascriptclass Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}