• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
看不惯的世俗
博客园    首页    新随笔    联系   管理    订阅  订阅

JS 命名空间从易到难

js空间命名,从简单到稍微有点难度

//1、用匿名函数来控制函数的作用域【作用域限制在函数内】
(function(){
    var a=1,b=2;
    ...
})();
//2、使用全局变量来共用一些变量
var GLOBAL={};
(function(){
    var a=1,b=2;
    GLOBAL.str1 = a;
    GLOBAL.str2 = b;
})();
//3、空间命名防止冲突
var GLOBAL={};
(function(){
    var a=1,b=2;
    GLOBAL.A={};
    GLOBAL.A.str = a;
    GLOBAL.A.str2 = b;
})();
(function(){
    var a=1,b=2;
    GLOBAL.B={};
    GLOBAL.B.str = a;
    GLOBAL.B.str2 = b;
})();
//4、多级命名空间
var GLOBAL={};
(function(){
    var a=1,b=2;
    GLOBAL.A={};
    GLOBAL.B={};
    GLOBAL.A.str = a;
    GLOBAL.B.obj = b;
})();
//5、使用命名空间函数并调用
var GLOBAL={};
GLOBAL.namespace=function(str){
    var arr = str.split("."),o=GLOBAL;
    for(i=(arr[0]="GLOBAL")?1:0;i<arr.length;i++){
      o[arr[i]=o[arr[i]]] || {};
      o=o[arr[i]];
    }
};
(function(){
    var a=1,b=2;
    GLOBAL.namespace("A.CAT");
    GLOBAL.namespace("B.DOG");
    GLOBAL.A.CAT = a;
    GLOBAL.B.DOG = b;
})();

posted @ 2013-03-05 19:13  天命↗夜风  阅读(161)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3