Показать сообщение отдельно
  #95 (permalink)  
Старый 12.10.2012, 02:52
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Отпусти меня чудо трава, я спать хочу

с точки зрения реализации javascript, замыкание на переменные глобального scope, или внешней функции это один и тот же механизм. Возможно просто потому что так проще писать интерпретатор .

Я и неспорю с тем что любая функция является замыканием. Но если мы будем называть любую функцию замыканием, вам некажется что будет путаница ?

Традиционно называют замыканиями именно вложенные функции, из традиционного определения я и исходил.

Однако даже исходя их традиционного определения, я пожалуй поспешил с утверждением что там не одного замыкания. funcs.push( function(i){ alert(i) } и быть может потянет за собой scope внешний функции, только фактом своего существования.

думаю это можно попробывать проверить так.
var ret= (function(){
      var test=100;
      return function(){ 
            eval ("alert"+"(test)");
      };
})()
ret();

врял ли интерпретатор знал что я буду использовать test, но если пример сработал, значит внешний scope был всё таки доступен.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 12.10.2012 в 14:50.
Ответить с цитированием