【js拾遗】名称空间

简介: function NameSpace(ns) { if (!ns) { return null; } var arr = ns.
function NameSpace(ns) {
            if (!ns) {
                return null;
            }
            var arr = ns.split('.');
            //第一次调用的时候window.utry的值为{};
            //第二次调用的时候window.utry的值为window.utry;
            window[arr[0]] = window[arr[0]] || {};
            //obj是window.utry的引用
            var obj = window[arr[0]];
            //result也是window.utry的引用
            var result = obj;
            var len = arr.length;
            //注意i是从1开始的
            for (var i = 1; i < len; i++) {
                //第一次调用的第一次循环obj.base的值是{};
                //因为obj是window.utry的引用,那么window.utry.base的值就是{};
                obj[arr[i]] = obj[arr[i]] || {};
                //obj变成了window.utry.base的引用
                //第二次循环的时候,就变成了对window.utry.base.sys的赋值了
                obj = obj[arr[i]];
            }
            return result;
        }
        NameSpace("utry.base.sys");
        utry.base.sys.fn = function () {
            alert("这是名称空间里的一个方法");
        }
        //这是为了证明函数不会被覆盖掉
        NameSpace("utry.base.sys");
        utry.base.sys.fn();
        //咦,这样可以打印出函数体
        alert(utry.base.sys.fn);

 

目录
相关文章
|
7月前
|
JavaScript 前端开发
【快捷键配置】常用HTML类名、CSS样式名称、JS方法变量名、vue代码片段
【快捷键配置】常用HTML类名、CSS样式名称、JS方法变量名、vue代码片段
|
存储 JavaScript 前端开发
|
7月前
Three.js点线几何空间图形代码
Three.js点线几何空间图形代码
32 2
Three.js点线几何空间图形代码
|
JavaScript 前端开发
js传递参数时变量名动态拼接(含数字或指定规律的变量名称)
js传递参数时变量名动态拼接(含数字或指定规律的变量名称)
494 0
|
JavaScript 数据格式 JSON
js获取对象长度和名称
1.对象的长度不能用.length获取,用js原生的Object.keys可以获取到 var obj = {'name' : 'Tom' , 'sex' : 'male' , 'age' : '14'};  var arr = Object.
1659 0
|
JavaScript 存储 前端开发
|
JavaScript API
arcgis js 空间关系查询
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bitree1/article/details/78425222 ARCGIS空间查询关系  Boundary(边界): 只有线和面才有边界。
1057 0
|
JavaScript
js拾遗:appendChild 添加移动节点
原文:js拾遗:appendChild 添加移动节点 写js一年多了,一直以为自己很牛逼,开始写各种博文分享,昨天写了一篇《浅谈 IE下innerHTML导致的问题》在看了下面的评论,我才发现自己是多么无知。
933 0
|
JavaScript
【JS拾遗】函数的参数
var test = function (arg1, arg2) { alert(arg1 + "_" + arg2); } //alert出来的是 liu_lun test("liu", "l...
651 0