Мое понимание закрытий заключается в том, что они по сути являются функцией, которая использует переменную, которую вы предположили бы, вне сферы видимости. Наверное, это пример, который я видел на днях:
function closureMaker(somearg)
{
var local_value = 7;
function funcToReturn(arg1, arg2)
{
return local_value + somearg + arg1 + arg2;
}
return funcToReturn;
}
var myClosure = closureMaker(6); //make the closure
myClosure(2, 3); //using it
Теперь у закрытия есть local_value и даже исходный arg, somearg. Но я не понимаю, почему они полезны. Какой смысл использовать "свободную" переменную local_value или даже более неизвестную мне, почему бы вы использовать аргумент функции closMaking в вашей функции закрытия?
Меня больше интересует, как это используется в javascript, много ли используется для запросов и объектов AJAX?
Я получил то, что. Мне нужно, почему.