Tham khảo: Sử dụng thực tế của đóng cửa
Trong thực tế đóng cửa có thể tạo ra các thiết kế thanh lịch, cho phép tùy chỉnh các tính toán khác nhau, cuộc gọi bị trì hoãn, cuộc gọi lại, tạo phạm vi đóng gói, v.v.
Một ví dụ về phương thức sắp xếp của các mảng chấp nhận làm đối số cho hàm điều kiện sắp xếp:
[1, 2, 3].sort(function (a, b) {
... // sort conditions
});
Các hàm ánh xạ là phương thức ánh xạ của các mảng ánh xạ một mảng mới theo điều kiện của đối số chức năng:
[1, 2, 3].map(function (element) {
return element * 2;
}); // [2, 4, 6]
Thông thường, sẽ thuận tiện khi triển khai các chức năng tìm kiếm bằng cách sử dụng các đối số chức năng xác định các điều kiện gần như không giới hạn cho tìm kiếm:
someCollection.find(function (element) {
return element.someProperty == 'searchCondition';
});
Ngoài ra, chúng tôi có thể lưu ý áp dụng các hàm như, ví dụ, một phương thức forEach áp dụng một hàm cho một mảng các phần tử:
[1, 2, 3].forEach(function (element) {
if (element % 2 != 0) {
alert(element);
}
}); // 1, 3
Một hàm được áp dụng cho các đối số (cho một danh sách các đối số - đang áp dụng và cho các đối số được định vị - trong cuộc gọi):
(function () {
alert([].join.call(arguments, ';')); // 1;2;3
}).apply(this, [1, 2, 3]);
Các cuộc gọi bị hoãn:
var a = 10;
setTimeout(function () {
alert(a); // 10, after one second
}, 1000);
Chức năng gọi lại:
var x = 10;
// only for example
xmlHttpRequestObject.onreadystatechange = function () {
// callback, which will be called deferral ,
// when data will be ready;
// variable "x" here is available,
// regardless that context in which,
// it was created already finished
alert(x); // 10
};
Tạo một phạm vi đóng gói cho mục đích ẩn các đối tượng phụ trợ:
var foo = {};
(function (object) {
var x = 10;
object.getX = function _getX() {
return x;
};
})(foo);
alert(foo.getX());// get closured "x" – 10