Class là gì?
Ta có thể hiểu Class là một khuôn mẫu
Sử dụng để tạo đối tượng có thuộc tính (attribute) và phương thức (method). Từ phiên bản ECMAScript 6 thì JavaSript hỗ trợ tạo ra class giống các ngôn ngữ lập trình hướng đối tượng khác (Java, C++...).
Ví dụ:
class Person {
constructor(name, birthYear) {
this.name = name;
this.birthYear = birthYear;
}
getAge() {
return 2023 - this.birthYear;
}
}
const person1 = new Person('Tran Van A', 1990);
person1.getAge();
Cú pháp:
class TenClass {
// Hàm khởi tạo
constructor() { ... }
// Các phương thức
phuongThuc1() { ... }
phuongThuc2() { ... }
phuongThuc3() { ... }
}
}
Constructor là gì?
Constructor hay còn gọi là phương thức khởi tạo là hàm dùng để khởi tạo một đối tượng của một lớp. Constructor sẽ tự động được tạo khi ta tạo một đối tượng của lớp. Chú ý là trong một lớp chỉ có một phương thức constructor, Nếu ta cố ý viết nhiều hơn 1 constructor thì sẽ xuất hiện lỗi. Như vậy trong Javascript chỉ có 1 hàm constructor, không giống như nhiều ngôn ngữ khác như Java, C++...
Static Methods
Phương thức tĩnh (static method) trong JavaScript là một phương thức được đính kèm vào lớp và có thể được gọi trực tiếp từ lớp mà không cần tạo một đối tượng từ lớp đó. Điều này khác với các phương thức thông thường trong lớp, mà thường phải được gọi bằng cách tạo một đối tượng từ lớp đó.
Để định nghĩa một phương thức tĩnh trong JavaScript, chúng ta sử dụng từ khóa static trước tên phương thức. Dưới đây là cú pháp của một phương thức tĩnh:
class TenLop { static tenPhuongThuc() { // Mã thực thi của phương thức tĩnh }
}
Khi một phương thức được đánh dấu là tĩnh, nó không thể truy cập các thuộc tính hoặc phương thức không tĩnh của lớp thông qua từ khóa this. Thay vào đó, phương thức tĩnh được sử dụng để thực hiện một tác vụ độc lập với các đối tượng của lớp.
Static method rất hữu ích khi chúng ta muốn thực hiện một tác vụ chung không phụ thuộc vào các thuộc tính hoặc phương thức của đối tượng cụ thể, mà chỉ phụ thuộc vào các tham số truyền vào.
Kế Thừa
• Sử dụng extends để kế thừa
• Sử dụng super để tham chiếu về parent class.
class Animal { constructor(name) { this.name = name; } eat() { console.log(`${this.name} is eating.`); }
} class Dog extends Animal { bark() { console.log(`${this.name} is barking.`); }
} // Tạo một đối tượng từ lớp con Dog
const dog = new Dog('Buddy');
dog.eat(); // Output: Buddy is eating.
dog.bark(); // Output: Buddy is barking.