Closure trong JavaScript:

Closure là một trong những khái niệm cốt lõi trong lập trình JavaScript, và đôi khi khá khó để hiểu vì nó liên quan đến việc lưu trữ và truy cập biến ở một thời điểm nào đó. Tuy nhiên, nếu bạn đã hiểu rõ về Closure, bạn có thể sử dụng nó để viết mã JavaScript hiệu quả hơn, đặc biệt khi bạn cần tạo các hàm hoặc mô-đun.

Vì vậy, trong bài viết này, chúng ta sẽ cùng tìm hiểu về Closure trong JavaScript và những điều cần biết để hiểu về cách hoạt động của nó.

Closure là gì?

Closure là khái niệm chỉ đến khả năng của một hàm trong JavaScript để truy cập vào các biến bên ngoài phạm vi của nó. Khi một hàm được khai báo, nó có thể truy cập vào các biến nằm trong phạm vi của nó, nhưng nó cũng có thể truy cập vào các biến nằm bên ngoài phạm vi của nó. Và đây chính là tính năng của Closure.

Với Closure cho phép các hàm được trả về từ một hàm khác có thể truy cập vào các biến của hàm chứa nó, ngay cả khi hàm chứa đã kết thúc thực thi.

Cách hoạt động của Closure

Khi một hàm được khai báo trong một hàm khác, hàm bên trong sẽ có thể truy cập vào các biến bên ngoài của hàm bao quanh nó. Và khi hàm bao quanh kết thúc thực thi, các biến này sẽ không bị xoá khỏi bộ nhớ, mà vẫn được lưu trữ trong closure. Khi hàm bên trong được gọi, nó có thể truy cập vào các biến nằm trong closure này.

Ví dụ, hãy xem xét đoạn mã sau:

				
					<a href="https://nodemy.vn/tim-hieu-ve-ham-trong-javascript-cach-tao-truyen-tham-so-va-su-dung-mot-cach-hieu-qua-don-gian-de-hieu-danh-cho-nguoi-moi-bat-dau-important/">function</a> createCounter() {
  let count = 0;

  return function() {
    count++;
    console.log(count);
  }
}

const counter = createCounter();
counter(); // Output: 1
counter(); // Output: 2

				
			

Trong đoạn mã này, createCounter là một hàm trả về một hàm khác, trong đó có một biến count. Khi hàm được trả về được gọi, nó có thể truy cập vào biến count bên ngoài phạm vi của nó bằng cách sử dụng closure.

Với Khi chúng ta gọi hàm createCounter, nó trả về một hàm mới, và chúng ta gán hàm này cho biến counter. Khi chúng ta gọi counter hai lần, hàm này sẽ truy cập vào biến count trong closure của nó và in ra giá trị tăng dần của biến count mỗi lần được gọi.

Kết luận và bài viết có liên quan

Tóm lại, Closure là một tính năng quan trọng trong JavaScript, cho phép các hàm được trả về từ một hàm khác truy cập vào các biến bên ngoài phạm vi của nó. Nếu bạn hiểu rõ về Closure, bạn có thể sử dụng nó để viết mã JavaScript hiệu quả hơn và giải quyết các vấn đề phức tạp trong lập trình.
 
Bài viết có liên quan: Tận dụng High-Order Functions để viết code hiệu quả hơn trong JavaScript đơn giản dễ hiểu dành cho người mới bắt đầu ( important ). Tận dụng High-Order Functions để viết code hiệu quả hơn trong JavaScript đơn giản dễ hiểu dành cho người mới bắt đầu ( important ). Tự tin tương tác với trang web của bạn với DOM trong JavaScript: Hướng dẫn từ cơ bản đến nâng cao đơn giản dễ hiểu dành cho người mới bắt đầu ( important ).

Leave a Reply

Your email address will not be published. Required fields are marked *