自定義命名空間

(function($) {
    if (!$) return;
    // ----------------------------
    // String原型方法擴展
    $.extend(String.prototype, {

      'toMapObject': function(sep) {
/*對當前字符串進行分割 然後把數組第1個位置的數字作爲第一層對象賦值給d 然後把第2個位置的數字作爲第二層的對象賦值給d以此類推 最終得到一個自己定義的多層結構的對象 然後可以根據它擴展一些自己需要的方法 達到了實現自定義命名空間的目的*/
            var sep = sep || '/';
            var s = this.split(sep);
            var d = {};
            var o = function(a, b, c) {
                if (c < b.length) {
                    if (!a[b[c]]) {
                        a[b[c]] = {};
                    }
                    d = a[b[c]];
                    o(a[b[c]], b, c + 1);
                }
            };
            o(window, s, 1);
            return d;
        }
    })
})

比如說定義一個字符串
f2e.GUI
"f2e.GUI".toMapObject(".");

之後就能用 f2e.GUI.showfunction = {
    do something...
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章