首頁  >  文章  >  web前端  >  如何寫一個js/jQuery函式庫(心得總結)

如何寫一個js/jQuery函式庫(心得總結)

PHPz
PHPz原創
2017-04-02 15:51:151572瀏覽

js/jQuery外掛程式有一些約定俗成的套路,根據這些套路依葫蘆畫瓢,程式碼的結構上就不會出現太大的問題了,特別推薦這個叫javascript-patterns 的專案,一些demo讓我收穫良多。

基本結構

普通的函式庫

#用最基本的匿名函數實作即可

(function(){
    var root = this;
    root.YOURLIB = function(){
        FUNC1 : function(){},
        FUNC2 : function(){}
    }
}())

也可以使用call而不是使用閉包,此時兩種寫法等效,undersocre.js用的是call寫法

(function(){
    var root = this;
    root.YOURLIB = function(){
        FUNC1 : function(){},
        FUNC2 : function(){}
    }
}.call(this))

jQuery 外掛

透過一下方法可以讓的外掛可以跨CMD/AMD/Browser

(function (factory) {
    if (typeof define === 'function' && define.amd) {
        // AMD
        define(['jquery'], factory);
    } else if (typeof exports === 'object') {
        // CommonJS
        factory(require('jquery'));
    } else {
        // Browser globals
        factory(jQuery);
    }
}(function ($) {
    $.fn.render = function() {}
    $.render2 = function() {}
}))

當然,如果不考慮Seajs,RequireJS的話,最方便的還是使用匿名函數,然後把window.jQuery當成參數傳進去

內部組織

我們以bootstrap-select v1.6.3,smooth-scroll這兩個專案來進行分析,

初始化

一般的Library都會提供一套defaults配置文件,然後使用的時候和用戶自定義的settings進行extend, smooth-scroll中的那種

settings = extend(defaults, options ||{})); 写法就相当赞,可以以一种十分简单的方式防止空指针异常。

剩下的就是根據業務劃分業務的funciton了,對於如何劃分,只有多加練習了。

另外,在註解裡像寫上 private 和 public 來區分對外介面和對內介面是個不錯的習慣。

i18n與設定管理

i18n是吧那些國際話的字元全都放到defautls,比較優雅的做法是defaults定義一個對象,這樣國際化檔案

便能和原有的函式庫檔案進行分離,具體參考bootstrap-datapicker

#THE END


以上是如何寫一個js/jQuery函式庫(心得總結)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn