Проблемы с пониманием синтаксиса JavaScript выбранного плагина, нужен совет - PullRequest
3 голосов
/ 21 марта 2012

Я хочу быть программистом javascript, поэтому я пытаюсь прочитать и понять код в выбранном плагине .

Я знаю, как создать плагин jquery, и я прочитало шаблоне модуля, но этот код мне неясен:

  //...
  attaching to jQuery object
  //...
   $.fn.extend({
    chosen: function(options) {

      return $(this).each(function(input_field) {
        if (!($(this)).hasClass("chzn-done")) {
          return new Chosen(this, options);
        }

      });
    }
  });



 //...
 //...
 //...


Chosen = (function() {
    __extends(Chosen, AbstractChosen);
    function Chosen() {
      Chosen.__super__.constructor.apply(this, arguments);


    } 
  // ...
  // attaching various events
  // ...
   return Chosen;
})();

Если Chosen - это функция, вызываемая самостоятельно - зачем ее инициализировать с помощью оператора new ?Спасибо

1 Ответ

1 голос
/ 24 марта 2012

Chosen во внешней области видимости - это функция / конструктор, возвращаемый из внутренней области видимости, которая получается из "собственной функции". Вот почему он называется с new.

...