Автор Andrey Wayne задал вопрос в разделе JavaScript
Зачем нужны замыкание в JavaScript? И что это такое? и получил лучший ответ
Ответ от Iron_spider[гуру]
Чтобы сохранить локальную переменную после завершения функции и использовать при запуске 2-ого, 3-его, n-ого раза.
Iron_spider
Мастер
(1830)
Ну-у, как-то так. Я их ооо-ооо-очень редко использовал.
Ответ от Vist[новичек]
в корне не так рассуждаешь. ибо ничего реального ты не пишешь и целей в обучении нет. поэтому не обижайся, но тебе вообще ничего не нужно на самом деле, до тех пор, пока не поймешь что нужно и не будешь именно им заниматься.у меня все наоборот. часто использую какую-то фичу и только потом узнаю, как она называется.давным-давно я умел делать вот так:window.onload = function () { ...button.onclick = function() {...};};и только потом узнал, что внутренняя функция, та, которая обрабатывает onclick, это и есть замыкание. зачем нужно? а как иначе? объявить ту же функцию вне onload? это не то - в этом случае кода больше, а мне допустим быстро надо набросать кнопокя понимаю, что я сейчас странные вещи говорю. 99% обучающихся тоже, как и ты, слабо понимают чего хотят, и не видят в этом проблемы, потому что просто не знают как работает мозг.а я вот в свое время попробовал иначе, и поверь, результат того стоит
в корне не так рассуждаешь. ибо ничего реального ты не пишешь и целей в обучении нет. поэтому не обижайся, но тебе вообще ничего не нужно на самом деле, до тех пор, пока не поймешь что нужно и не будешь именно им заниматься.у меня все наоборот. часто использую какую-то фичу и только потом узнаю, как она называется.давным-давно я умел делать вот так:window.onload = function () { ...button.onclick = function() {...};};и только потом узнал, что внутренняя функция, та, которая обрабатывает onclick, это и есть замыкание. зачем нужно? а как иначе? объявить ту же функцию вне onload? это не то - в этом случае кода больше, а мне допустим быстро надо набросать кнопокя понимаю, что я сейчас странные вещи говорю. 99% обучающихся тоже, как и ты, слабо понимают чего хотят, и не видят в этом проблемы, потому что просто не знают как работает мозг.а я вот в свое время попробовал иначе, и поверь, результат того стоит
Ответ от Ice[гуру]
Замыкание - это одна из основ JavaScript. Другие - это прототипы, функции первого класса, интроспекция, ещё слабая динамическая типизация.Если совсем простым языком, то замыкание - это функция, в которой есть доступ к переменным из вне функции, при этом они явно (через параметры) в функцию не передаются.
Замыкание - это одна из основ 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. почитай ссылка
Здесь написали много умных слов, но никто не обратил внимание на то, что твой пример НЕ ВЕРЕН. тебе нужно ВЕРНУТЬ внутреннюю функцию 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? И что это такое?
спросили в Создать
Как создаются "классы" в JavaScript?
В JavaScript до версии 2.0 не полноценных классов, они есть только в версии JavaScript 2.0(если их
подробнее...
Как создаются "классы" в JavaScript?
В JavaScript до версии 2.0 не полноценных классов, они есть только в версии JavaScript 2.0(если их
подробнее...
спросили в Sun Microsystems
Что такое javascript-код?
ну java script один из языков программирования) ) иногда в на страничках в инете попадаются какие
подробнее...
Что такое javascript-код?
ну java script один из языков программирования) ) иногда в на страничках в инете попадаются какие
подробнее...
спросили в Другое Java ME
Что такое Java Script.
Что такое JavaScript
Язык JavaScript - это обьектно - ориентированный язык, предназначенный
подробнее...
Что такое Java Script.
Что такое JavaScript
Язык JavaScript - это обьектно - ориентированный язык, предназначенный
подробнее...
спросили в Sun Microsystems
Что такое JAVA SCRIPT и как это можно установить на свой компьютер? Спасибо.
JAVA SCRIPT невозможно установить на компьютер .
Вообщем то это текст написанный на языке
подробнее...
Что такое JAVA SCRIPT и как это можно установить на свой компьютер? Спасибо.
JAVA SCRIPT невозможно установить на компьютер .
Вообщем то это текст написанный на языке
подробнее...
спросили в Зонд
что такое "лямбда"?
лямбда зонд в автомобиле применяется для регулировки обогащения кислородом топлива, чтоб его
подробнее...
что такое "лямбда"?
лямбда зонд в автомобиле применяется для регулировки обогащения кислородом топлива, чтоб его
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в Documenta
JavaScript addEventListener
ответ на вопрос "почему-то" - потому что в момент, когда событие (клик) происходит, keyname имеет
подробнее...
JavaScript addEventListener
ответ на вопрос "почему-то" - потому что в момент, когда событие (клик) происходит, keyname имеет
подробнее...
Как исправить? Dom структура
после этого кода
var button=document.createElement("button");
подробнее...