Đăng nhập
Bạn chưa có tài khoản? Đăng ký.
Bạn đã quên password?
Để tạo một lớp, chúng ta sử dụng từ khóa class
. Và luôn thêm một phương thức constructor()
khi khởi tạo một lớp.
Cú pháp
class className { constructor() {...} }
Ví dụ
class car { constructor(name, year) { this.name = name; this.year = year; } }
Ví dụ trên tạo một lớp có tên là "car".
Lớp có hai thuộc tính ban đầu: "name" và "year".
Khi chúng ta có một lớp, chúng ta có thể sử dụng lớp đó để tạo các đối tượng mới.
Ví dụ
class car { constructor(name, year) { this.name = name; this.year = year; } } const car1 = new car("Innova", 2020); document.getElementById('demo').innerHTML = car1.name + " " + car1.year;
Ví dụ trên sử dụng lớp Car để tạo một đối tượng Car1.
Phương thức hàm tạo là một phương thức đặc biệt:
constructor
"Các phương thức lớp được tạo ra với cùng một cú pháp như các phương thức đối tượng.
Sử dụng từ khóa class để tạo một lớp.
Luôn phải thêm một phương thức constructor()
Sau đó, chúng ta có thể thêm bất kỳ số lượng phương thức nào.
Cú pháp
class className { constructor() {...}; method1() {...}; method2() {...}; method3() {...}; }
Ví dụ sau Tạo một phương thức Class có tên "age", phương thức này trả về year của đối tượng car.
Ví dụ
class car { constructor(name, year) { this.name = name; this.year = year; } age() { const date = new Date(); return (date.getFullYear() - this.year); } } const car1 = new car("Innova",2010); const car2 = new car("Innova",2015); document.getElementById('demo').innerHTML = "Xe " + car1.name + " chạy được " + car1.age() + " năm.";
Chúng ta cũng có thể gửi các tham số đến các phương thức Class.
Ví dụ
class car { constructor(name, year) { this.name = name; this.year = year; } age(x) { return (x - this.year); } } const date = new Date(); var x = date.getFullYear(); const car1 = new car("Innova",2010); document.getElementById('demo').innerHTML = "Xe " + car1.name + " chạy được " + car1.age(x) + " năm.";
Bảng bên dưới xác định phiên bản trình duyệt đầu tiên có hỗ trợ đầy đủ cho Lớp trong JavaScript.
Chrome 49 | Edge 12 | Firefox 45 | Safari 9 | Opera 36 |
Mar, 2016 | Jul, 2015 | Mar, 2016 | Oct, 2015 | Mar, 2016 |
Cú pháp trong các lớp phải được viết ở "strict mode".
Chúng ta sẽ gặp lỗi nếu không tuân theo các quy tắc "chế độ nghiêm ngặt".
Ví dụ
class car { constructor(name, year) { this.name = name; this.year = year; } age() { date = new Date() // code này sẽ không hoạt động ở chế độ strict mode const date = new Date(); // code này thì ok return (date.getFullYear() - this.year); } }
Tìm hiểu thêm về "chế độ nghiêm ngặt" trong bài viết JS Strict Mode.