JavaScriptda OOPda metod va xususiyat nomlari to‘qnashuvi
Xususiyat va metod nomlari bir xil bo‘lmasligi kerak, aks holda to‘qnashuv yuzaga keladi. Keling, buni misolda ko‘ramiz. Quyidagi klassimiz bor deb faraz qilaylik:
class User {
name() {
console.log('metod');
}
}
Ushbu klassning ob'ektini yaratamiz:
let user = new User;
Uning metodini chaqiramiz, hozircha hammasi ishlaydi:
user.name(); // ishlaydi
Endi esa bir xil nomdagi xususiyatga ma'lumot yozamiz, shu bilan metod kodini o‘chirib tashlaymiz:
user.name = 'str';
user.name(); // xatolik
Bunday to‘qnashuvlarning oldini olish uchun har doim metodlarga fe'l nomlarini, xususiyatlarga esa ot nomlarini bering.
Quyidagi kodda qilingan xatoni tuzating:
class Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}