хм, конечно читал. на хабре было попроще написано про это (по крайней мере,для меня)
просто, кажется, что, когда функция заменяется чем-либо, то область видимости пропадает. это логика так говорит
но в замыкании анонимная функция может отработать своё и испариться, а область видимости останется, конечно же.
значит,можно делать и так,если я усвоил ....
function a( ){
var num='closure in func1';
alert('fresh func 1');
func=function(){
alert("num="+num+"\n\n function a : \n\n"+a)
}
}
a(); // первый вызов
/* изменяем, но так, чтобы исполнение
было последовательным.
я про то, что тут было бы,
если бы написал внизу
function a(){alert('another func')}
*/
a=function (){ alert('another func') }
a();
func();
у меня просто нет слов!
функция исполняется, делает свои дела, потом оставляет в window "телефон", на который можно позвонить (это
func, там находится замыкание потом).
потом функция
a заменяется чем-то другим, что делает совершенно другое
и имеет исходный код без всяких присваиваний!
красота!
это магия!!
..
не могу уже тебе плюсовать