Преимущества новой технологии обтекания библиотек jQuery - PullRequest
3 голосов
/ 15 октября 2011

Я просто заметил, что в исходном коде jQuery есть некоторые изменения в технике обтекания библиотек.Как я помню, в версии 1.4 они использовали обтекание этой библиотеки:

(function(...){
   var jQuery = function(){
    // some code
   }
   // other code    
})(...);

, а теперь в 1.6.x:

(function(...){
   var jQuery = (function(){
      var jQuery = function(){
        // some code
      }
      // other code 
      return jQuery;       
   })();
})(...);

Просто подумал, кто-нибудь случайно знал, в чем преимуществаиз этих изменений (техника упаковки)?

1 Ответ

0 голосов
/ 15 октября 2011

Я не думаю, что это само по себе "обтекание библиотеки" - внешняя анонимная функция все еще оборачивает всю библиотеку. Я думаю, что вы видите здесь, что части кода jQuery, и в частности часть, которая определяет основные функциональные возможности, используют шаблон Module , чтобы держать части кода в ограниченном объеме.

Например, если вы посмотрите исходный файл core.js , вы увидите, что строки 4-77 определяют тонну переменных - вы можете понять, почему вы не хотите, чтобы все эти зависания вокруг в переменной области остальной части библиотеки. Шаблон модуля помогает минимизировать конфликты и путаницу в большом объеме кода, и я бы сказал, что причина, по которой они начали использовать этот шаблон после v.1.4, заключается в том, что кодовая база стала больше и сложнее. Поэтому я думаю, что в финальной библиотеке вы видите не более жесткий код с точки зрения оптимизации, но более надежный код с точки зрения обслуживания.

Я не разработчик jQuery, так что, конечно, это все догадки. Но это кажется разумным объяснением.

...