संदर्भ: क्लोजर का व्यावहारिक उपयोग
व्यवहार में क्लोजर सुरुचिपूर्ण डिजाइन बना सकते हैं, विभिन्न गणनाओं के अनुकूलन, आस्थगित कॉल, कॉलबैक, इनकैप्सुलेटेड स्कोप आदि का निर्माण कर सकते हैं।
एरे की तरह विधि का एक उदाहरण जो एक तर्क को सॉर्ट-कंडीशन फ़ंक्शन के रूप में स्वीकार करता है:
[1, 2, 3].sort(function (a, b) {
... // sort conditions
});
फ़ंक्शंस के मानचित्र विधि के रूप में फ़ंक्शंस को मैप करना जो कार्यात्मक तर्क की स्थिति से एक नए सरणी को मैप करता है:
[1, 2, 3].map(function (element) {
return element * 2;
}); // [2, 4, 6]
अक्सर खोज के लिए लगभग असीमित स्थितियों को परिभाषित करने वाले कार्यात्मक तर्कों का उपयोग करके खोज कार्यों को लागू करना सुविधाजनक होता है:
someCollection.find(function (element) {
return element.someProperty == 'searchCondition';
});
इसके अलावा, हम कार्यात्मक रूप से लागू करने पर ध्यान दे सकते हैं, उदाहरण के लिए, एक पूर्व विधि जो तत्वों के एक सरणी पर एक फ़ंक्शन लागू करती है:
[1, 2, 3].forEach(function (element) {
if (element % 2 != 0) {
alert(element);
}
}); // 1, 3
एक फ़ंक्शन को तर्कों पर लागू किया जाता है (तर्कों की एक सूची में - लागू करने के लिए, और तर्कों को तैनात करने के लिए - कॉल में):
(function () {
alert([].join.call(arguments, ';')); // 1;2;3
}).apply(this, [1, 2, 3]);
आस्थगित कॉल:
var a = 10;
setTimeout(function () {
alert(a); // 10, after one second
}, 1000);
कॉलबैक कार्य:
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
};
सहायक वस्तुओं को छिपाने के उद्देश्य के लिए एक समझाया गुंजाइश का निर्माण:
var foo = {};
(function (object) {
var x = 10;
object.getX = function _getX() {
return x;
};
})(foo);
alert(foo.getX());// get closured "x" – 10