2011-07-22 78 views
2

那怎麼我通常執行我的插件:jQuery插件開發模式

(function($){ 
    $.fn.plugingName = function(inSettings){ 
     //code that extands settings with default 
     return this.each(function(){ 
     new PluginClass($(this), settings); 
     }); 
    } 

    PluginClass = function(jElem, settings){ 
     //here I usually put variable and function in such a way to compose better 
     var events = { 
      onMouseUp : function(){ 
       //some actions 
      }, 
      onMouseMove : function(event){ 
       //some actions 
      }, 
      //etc. 
     }, 
     draw = { 
      drawGrid : function(){//some actions}, 
      //etc. 
     }, 
     //etc. 

     /***************************** 
     * This is a place of question 
     ****************************/ 
    } 
})(jQuery); 

我只是想知道是否有從我上述聲明部分的算法分離模式。有些事情喜歡把所有的算法部分內

function main(){ 
}(); 

如果有更好的方法來區分你的算法的主要部分。我希望我能清楚地描述一切。

所有其他可以用代表代碼進行的改進也是值得讚賞的。

回答

1

你的意思是把function main()以外的大包裝function($){ ...?但是這不是所期望的,包裝函數在那裏是爲了不覆蓋全局名稱空間的原因。這是非常乾淨的設計,它是理想的。所以不要擔心使用這種標準模式。

+0

不是。我在說要把主要(或另一個approuch)放到'這是一個問題的地方'的評論。我想將聲明和實現部分從入口點分開,以強調算法的開始。類似於C/C++/Java中的主要函數等 –