Отпусти меня чудо трава, я спать хочу
с точки зрения реализации javascript, замыкание на переменные глобального scope, или внешней функции это один и тот же механизм. Возможно просто потому что так проще писать интерпретатор
.
Я и неспорю с тем что любая функция является замыканием. Но если мы будем называть любую функцию замыканием, вам некажется что будет путаница ?
Традиционно называют замыканиями именно вложенные функции, из традиционного определения я и исходил.
Однако даже исходя их традиционного определения, я пожалуй поспешил с утверждением что там не одного замыкания. funcs.push( function(i){ alert(i) } и быть может потянет за собой scope внешний функции, только фактом своего существования.
думаю это можно попробывать проверить так.
var ret= (function(){
var test=100;
return function(){
eval ("alert"+"(test)");
};
})()
ret();
врял ли интерпретатор знал что я буду использовать test, но если пример сработал, значит внешний scope был всё таки доступен.