Tìm hiểu cách sử dụng lớp (Classes) trong JavaScript
Javascript căn bản | by
Trong JavaScript, trước ES6, lập trình viên thường sử dụng Constructor Function để tạo đối tượng và mô phỏng lập trình hướng đối tượng (OOP). Tuy nhiên, cú pháp này không trực quan và có thể gây nhầm lẫn. Để khắc phục điều đó, JavaScript ES6 đã giới thiệu Classes – một cách khai báo dễ đọc, rõ ràng và gần gũi hơn với lập trình hướng đối tượng trong các ngôn ngữ như Java hay C++.
Classes trong JavaScript giúp tổ chức mã nguồn tốt hơn, hỗ trợ tính kế thừa (inheritance), tính đóng gói (encapsulation) và tính trừu tượng (abstraction). Nhờ đó, chúng trở thành một công cụ mạnh mẽ để xây dựng các ứng dụng hiện đại, đặc biệt trong các framework như React.js, Vue.js hay khi làm việc với mô hình OOP.
Trong bài viết này, mình sẽ tìm hiểu cách khai báo và sử dụng Classes, tìm hiểu các tính năng quan trọng như constructor, kế thừa, phương thức tĩnh (static methods), getter/setter, cũng như một số lưu ý khi làm việc với Class trong JavaScript.
Classes trong JavaScript
Định nghĩa Classes trong JavaScript
Trong JavaScript, Class là một cú pháp mới được giới thiệu từ ES6 để định nghĩa các đối tượng và làm việc theo mô hình lập trình hướng đối tượng (OOP). Classes không phải là một kiểu dữ liệu mới, mà chỉ là một cách viết dễ hiểu hơn so với việc sử dụng Constructor Function.
Class trong JavaScript giúp định nghĩa các đối tượng có thuộc tính (properties) và phương thức (methods), đồng thời hỗ trợ các tính năng như kế thừa (inheritance), phương thức tĩnh (static methods) và getter/setter.
Ví dụ về một Class đơn giản:
class Person { constructor(name, age) { this.name = name; this.age = age; } greet() { console.log(`Xin chào, tôi là ${this.name} và tôi ${this.age} tuổi.`); } } // Tạo một đối tượng từ Class const person1 = new Person("Kiên", 25); person1.greet(); // Output: Xin chào, tôi là Kiên và tôi 25 tuổi.
Cách khai báo và sử dụng Classes trong JavaScript
Khai báo một Class cơ bản
Cú pháp của Class trong JavaScript được giới thiệu từ ES6 và có cấu trúc gọn gàng, dễ hiểu hơn so với Constructor Function truyền thống.