Khám Phá Từ Khóa new Trong JavaScript: Cách Hoạt Động Của Hàm Constructor

07 tháng 4, 2026·3 phút đọc

Bài viết giải thích chi tiết về từ khóa new trong JavaScript, cách hàm constructor tạo và khởi tạo đối tượng mới. Đồng thời, khái quát về nguyên lý hoạt động của prototype giúp chia sẻ phương thức giữa các đối tượng hiệu quả.

Khám Phá Từ Khóa new Trong JavaScript: Cách Hoạt Động Của Hàm Constructor

Khám Phá Từ Khóa new Trong JavaScript: Cách Hoạt Động Của Hàm Constructor

Trong JavaScript, khi bạn viết câu lệnh như new Person("Alice", 30), bạn có bao giờ tự hỏi phía sau câu lệnh này diễn ra điều gì không? Bài viết này sẽ giúp bạn hiểu rõ cách từ khóa new hoạt động cùng với hàm constructor để tạo ra các đối tượng mới.

Hàm Constructor là gì?

Hàm constructor thực chất cũng là một hàm bình thường, nhưng theo quy ước, tên hàm sẽ viết hoa chữ cái đầu (ví dụ: Person), nhằm báo hiệu hàm đó nên được gọi kèm với từ khóa new.

Ví dụ:

function Person(name, age) {
  this.name = name;
  this.age = age;
}

Trong hàm này, this đại diện cho đối tượng mới đang được tạo ra. Đây là điểm quan trọng nhất cần lưu ý.

Từ khóa new làm gì khi gọi hàm constructor?

Khi bạn viết:

const alice = new Person("Alice", 30);

JavaScript ngầm thực hiện 4 bước:

  1. Tạo một đối tượng rỗng mới
    Tương đương nội bộ như: const this = {};

  2. Liên kết đối tượng mới với prototype của hàm constructor
    Nội bộ là: this.__proto__ = Person.prototype;

    Đó là lý do tại sao đối tượng mới có thể sử dụng được các phương thức được định nghĩa trên Person.prototype, dù chúng không nằm trong chính đối tượng đó.

  3. Thực thi phần thân hàm constructor với this là đối tượng mới
    Ví dụ: gán this.name = "Alice";

  4. Tự động trả về đối tượng mới mà không cần câu lệnh return

Đưa phương thức vào prototype để tiết kiệm bộ nhớ

Thay vì tạo bản sao riêng biệt cho từng đối tượng, ta thêm các phương thức vào prototype. Như vậy các đối tượng mới đều có thể sử dụng chung mà không tốn dung lượng cho mỗi đối tượng.

Ví dụ:

Person.prototype.greet = function() {
  console.log("Hi, I'm " + this.name);
};

const alice = new Person("Alice", 30);
const bob   = new Person("Bob", 25);

alice.greet(); // "Hi, I'm Alice"
bob.greet();   // "Hi, I'm Bob"

Cả alicebob đều dùng chung phương thức greet, không phải bản sao riêng.

Chuỗi prototype (Prototype Chain) hoạt động như thế nào?

Khi bạn gọi alice.greet(), JavaScript sẽ lần lượt tìm kiếm:

  • greet trong alice không? Không có
  • Tìm trong alice.__proto__ (tức Person.prototype), thấy có => dùng phương thức này.

Quá trình tìm kiếm này gọi là chuỗi prototype — cách JavaScript tìm thuộc tính hay phương thức trên đối tượng và các prototype liên kết theo chuỗi.

Tổng kết

  • Hàm constructor là khuôn mẫu để tạo đối tượng mới.
  • new tạo ra đối tượng rỗng, liên kết prototype, gọi hàm constructor và trả về đối tượng.
  • Dữ liệu riêng nằm trong instance; phương thức dùng chung được đưa lên prototype.
  • Khi truy cập thuộc tính không có trong đối tượng, JavaScript sẽ lên chuỗi prototype tìm kiếm.

Hiểu rõ cách từ khóa new và hàm constructor hoạt động giúp bạn nắm chắc kiến trúc đối tượng trong JavaScript, từ đó viết code hiệu quả và dễ bảo trì hơn.

Bài viết được tổng hợp và biên soạn bằng AI từ các nguồn tin tức công nghệ. Nội dung mang tính tham khảo. Xem bài gốc ↗