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