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 + '
;
}
}