Đóng cửa chỉ là một cái gì đó để giải quyết một loạt các vấn đề một cách thanh lịch. Trên thực tế, trong các ngôn ngữ lập trình không có sự đóng cửa tồn tại, các kỹ thuật được tạo ra để thực hiện các chức năng tương tự.
Chỉ cần nghĩ về functor trong C ++ hoặc Runnables trong Java. Chúng chỉ là các kỹ thuật cho phép các chức năng tương tự như đóng cửa. Một số loại «đóng cửa thủ công».
Việc đóng cửa đang trở nên phổ biến hơn vì chúng được tích hợp vào các ngôn ngữ phổ biến: Javascript đang phát triển do các ứng dụng trực tuyến (ví dụ như google doc), C # đã triển khai nó, PHP đã triển khai nó từ ngày 5.3, v.v.
Giờ đây, việc đóng cửa đã có sẵn trong ngày càng nhiều công nghệ, nó trở nên khá đơn giản khi ngày càng có nhiều người quan tâm đến chúng.
Vậy bây giờ, đóng cửa là gì? Điều này khá đơn giản. Một bao đóng là một chức năng và một bối cảnh để thực hiện nó trong. Điều này được chế tác như một đối tượng. Tại sao điều này hữu ích? Điều này rất hữu ích để móc mã của riêng bạn vào mã hiện có.
Dưới đây là hai tình huống phổ biến yêu cầu: khi các hành động được quản lý bởi một đoạn mã khác, như trong đa luồng với một nhóm luồng hoặc khi một hành động phải được thực thi trong một sự kiện được chọn (thường được sử dụng trong javascript cho UI).