Referans: Kapakların pratik kullanımı
Uygulamada, kapaklar çeşitli hesapların, ertelenmiş aramaların, geri aramaların, kapsüllenmiş kapsamın vb. Özelleştirilmesine izin veren zarif tasarımlar oluşturabilir.
Sıralama koşulu işlevini bağımsız değişken olarak kabul eden dizilerin sıralama yöntemine bir örnek:
[1, 2, 3].sort(function (a, b) {
... // sort conditions
});
İşlevselleri, yeni bir diziyi işlev bağımsız değişkeninin durumuna göre eşleyen dizilerin eşleme yöntemi olarak eşleme:
[1, 2, 3].map(function (element) {
return element * 2;
}); // [2, 4, 6]
Genellikle arama işlevlerini, arama için neredeyse sınırsız koşulları tanımlayan işlevsel bağımsız değişkenler kullanarak uygulamak uygundur:
someCollection.find(function (element) {
return element.someProperty == 'searchCondition';
});
Ayrıca, örneğin bir dizi öğeye bir işlev uygulayan bir forEach yöntemi olarak işlevlerin uygulanmasını not edebiliriz:
[1, 2, 3].forEach(function (element) {
if (element % 2 != 0) {
alert(element);
}
}); // 1, 3
Bir işlev, bağımsız değişkenlere (uygulamada ve konumdaki bağımsız değişkenlere - çağrıda) bir argümanlar listesine uygulanır:
(function () {
alert([].join.call(arguments, ';')); // 1;2;3
}).apply(this, [1, 2, 3]);
Ertelenmiş aramalar:
var a = 10;
setTimeout(function () {
alert(a); // 10, after one second
}, 1000);
Geri arama işlevleri:
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
};
Yardımcı nesneleri gizlemek için kapsüllenmiş bir kapsamın oluşturulması:
var foo = {};
(function (object) {
var x = 10;
object.getX = function _getX() {
return x;
};
})(foo);
alert(foo.getX());// get closured "x" – 10