Konflik Nama Kaedah dan Sifat dalam OOP di JavaScript
Nama sifat dan kaedah tidak boleh bertindan, ini akan menyebabkan konflik. Mari kita lihat contoh. Katakan kita mempunyai kelas berikut:
class User {
name() {
console.log('method');
}
}
Mari buat objek daripada kelas ini:
let user = new User;
Mari panggil kaedahnya, buat masa ini semuanya akan berfungsi:
user.name(); // berfungsi
Sekarang mari tulis data ke dalam sifat yang sama nama, dengan itu menimpa kod kaedah:
user.name = 'str';
user.name(); // ralat
Untuk mengelakkan konflik sedemikian, sentiasa beri nama kaedah sebagai kata kerja, dan sifat sebagai kata nama.
Betulkan ralat yang dilakukan dalam kod berikut:
class Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}