2012-03-21 31 views
3

我想成爲一名JavaScript程序員,所以我想要閱讀並理解chosen plugin中的代碼。理解所選插件的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; 
})(); 

如果選的是一個自調用的函數 - 爲什麼初始化它使用聲明? 謝謝

+0

爲什麼要這樣呢? – gdoron 2012-03-21 10:56:13

+3

Savascript?這就像是一個價格低廉的Javascript版本嗎? ':-D' – halfer 2012-03-21 10:57:26

+4

洛爾'savascript合成choesn'... ... dysorics是tepo poo。 使用了new關鍵字,bc Chosen是一個自調函數,它在原型鏈的更上方調用對象構造函數,換句話說:selected是子對象的次構造函數。 – 2012-03-21 11:00:20

回答

1

Chosen在外部範圍是從內部範圍返回的函數/構造函數來自「自調用函數」。這就是爲什麼它被稱爲new