javascript замыкание



Автор Andrey Wayne задал вопрос в разделе JavaScript

Зачем нужны замыкание в JavaScript? И что это такое? и получил лучший ответ

Ответ от Iron_spider[гуру]
Чтобы сохранить локальную переменную после завершения функции и использовать при запуске 2-ого, 3-его, n-ого раза.
Iron_spider
Мастер
(1830)
Ну-у, как-то так. Я их ооо-ооо-очень редко использовал.

Ответ от Vist[новичек]
в корне не так рассуждаешь. ибо ничего реального ты не пишешь и целей в обучении нет. поэтому не обижайся, но тебе вообще ничего не нужно на самом деле, до тех пор, пока не поймешь что нужно и не будешь именно им заниматься.у меня все наоборот. часто использую какую-то фичу и только потом узнаю, как она называется.давным-давно я умел делать вот так:window.onload = function () { ...button.onclick = function() {...};};и только потом узнал, что внутренняя функция, та, которая обрабатывает onclick, это и есть замыкание. зачем нужно? а как иначе? объявить ту же функцию вне onload? это не то - в этом случае кода больше, а мне допустим быстро надо набросать кнопокя понимаю, что я сейчас странные вещи говорю. 99% обучающихся тоже, как и ты, слабо понимают чего хотят, и не видят в этом проблемы, потому что просто не знают как работает мозг.а я вот в свое время попробовал иначе, и поверь, результат того стоит

Ответ от Ice[гуру]
Замыкание - это одна из основ JavaScript. Другие - это прототипы, функции первого класса, интроспекция, ещё слабая динамическая типизация.Если совсем простым языком, то замыкание - это функция, в которой есть доступ к переменным из вне функции, при этом они явно (через параметры) в функцию не передаются.

Ответ от Islam Ibakaev[гуру]
Здесь написали много умных слов, но никто не обратил внимание на то, что твой пример НЕ ВЕРЕН. тебе нужно ВЕРНУТЬ внутреннюю функцию b, а не вызывать её внутри функции a, в противном случае замыкание не будет создано.
---
function a(){
var count=0; //окружения для функции b
function b(){
count=count+1; //использовали свободную переменную
return count; //замыкание
}
return b;
}
var counter = a();
counter(); // 1
counter(); // 2
counter(); // 3
counter(); // 4
counter(); // 5
p.s. почитай ссылка

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Зачем нужны замыкание в JavaScript? И что это такое?
Замыкание программирование на Википедии
Посмотрите статью на википедии про Замыкание программирование
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*