Xung đột tên phương thức và thuộc tính trong OOP JavaScript
Tên thuộc tính và phương thức không nên trùng nhau, điều này sẽ gây ra xung đột. Hãy xem xét một ví dụ. Giả sử chúng ta có lớp sau:
class User {
name() {
console.log('method');
}
}
Hãy tạo một đối tượng của lớp này:
let user = new User;
Gọi phương thức của nó, hiện tại mọi thứ sẽ hoạt động:
user.name(); // works
Bây giờ hãy gán dữ liệu vào một thuộc tính cùng tên, điều này sẽ ghi đè mã phương thức:
user.name = 'str';
user.name(); // error
Để tránh các xung đột như vậy, luôn đặt tên phương thức là động từ, còn thuộc tính - là danh từ.
Hãy sửa lỗi được tạo ra trong đoạn mã sau:
class Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}