Câu hỏi

Closure trong javascript là gì, cho ví dụ?

Câu trả lời

Closure trong JavaScript là một khái niệm quan trọng, cho phép một hàm truy cập các biến từ phạm vi bên ngoài của nó, ngay cả sau khi phạm vi đó đã kết thúc. Cụ thể, closure là một hàm có khả năng "nhớ" và truy cập các biến và tham số của hàm bên ngoài mà nó được tạo ra, ngay cả khi hàm bên ngoài đó đã thực thi xong

Đặc điểm của Closure

  • Truy cập biến từ phạm vi bên ngoài: Closure có thể truy cập các biến từ phạm vi bên ngoài của nó, bao gồm cả biến toàn cục, biến từ hàm bên ngoài (outer function), và biến cục bộ của chính nó
  • Bảo vệ dữ liệu: Closure giúp bảo vệ dữ liệu bằng cách giữ cho các biến không thể truy cập trực tiếp từ bên ngoài, tạo ra các biến "riêng tư"
  • Duy trì trạng thái: Closure cho phép duy trì trạng thái trong các hàm con mà không cần tạo ra các biến toàn cục, giúp giảm thiểu rủi ro xung đột biến và làm bẩn không gian tên

Ví dụ về Closure

function createCounter() {
    let count = 0;
    return function() {
        count++;
        console.log(count);
    };
}

let counter = createCounter();
counter(); // 1
...
Bạn cần đăng nhập để xem
senior

senior

Gợi ý câu hỏi phỏng vấn

middle

Trong Javascript, sự khác biệt giữa throw Error('msg') so với throw new Error('msg') là gì?

senior

Triển khai Constructor Design Pattern trong Javascript như thế nào?

middle

Sử dụng Promise trong JavaScript như thế nào?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào