JS 命名空间 实现方式 收集

一、 对象注册式

// 声明一个全局对象Namespace,用来注册命名空间
Namespace = new Object(); 
// 全局对象仅仅存在register函数,参数为名称空间全路径,如"Grandsoft.GEA"
Namespace.register = function(fullNS)
{
    // 将命名空间切成N部分, 比如Grandsoft、GEA等
    var nsArray = fullNS.split('.');
    var sEval = "";
    var sNS = "";
    for (var i = 0; i < nsArray.length; i++)
    {
        if (i != 0) sNS += ".";
        sNS += nsArray[i];
        // 依次创建构造命名空间对象(假如不存在的话)的语句
        // 比如先创建Grandsoft,然后创建Grandsoft.GEA,依次下去
        sEval += "if (typeof(" + sNS + ") == 'undefined') " + sNS + " = new Object();"
    }
    if (sEval != "") eval(sEval);
}

 

JQ环境下,可以这样

var

 

ty = $.extend({}, ty);

/* 定义全局对象,类似于命名空间或包的作用 */

/**

*增加命名空间功能使用方法:ty.ns('jQuery.bbb.ccc','jQuery.eee.fff');*/

ty.ns =

function() {var o = {}, d;for ( var i = 0; i < arguments.length; i++) {

d = arguments[i].split(

".");

o = window[d[0]] = window[d[0]] || {};

for ( var k = 0; k < d.slice(1).length; k++) {

o = o[d[k + 1]] = o[d[k + 1]] || {};

}

}

return o;

};

 

 

 

二、对象直接绑定式

 

<script language=”javascript”>

var com;
if(typeof com == “undefined”){
 //var com = {};

com = {};
}

 

com.juuyou = {};
com.juuyou.aa = “aa”;

 

com.juuyou.fb = function(){
 alert(“fb”);
}
alert(com.juuyou.aa);
com.juuyou.fb();
</script>

 

转载于:https://www.cnblogs.com/xunol/p/3316352.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值