Konfliktet e emrave të metodave dhe vetive në OOP në JavaScript
Emrat e vetive dhe metodave nuk duhet të përputhen, kjo do të shkaktonte konflikt. Le të shohim një shembull. Le të themi se kemi klasën e mëposhtme:
class User {
name() {
console.log('metoda');
}
}
Le të krijojmë një objekt të kësaj klase:
let user = new User;
Le të thirrim metodën e tij, për momentin çdo gjë do të funksionojë:
user.name(); // funksionon
Tani le të shkruajmë të dhëna në vetinë me të njëjtin emër, duke e fshirë kështu kodin e metodës:
user.name = 'str';
user.name(); // gabim
Për të shmangur konflikte të tilla gjithmonë jini emra-folje metodave, ndërsa vetive - emra-emra.
Korrigjoni gabimin e bërë në kodin e mëposhtëm:
class Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}