Մեթոդների և հատկությունների անունների հակասություններ 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 + '
;
  }
}