命名空间有助于减少程序中所需要的全局变量的数量,并且同时有助于避免命名冲突或过长的名字前缀。

关于命名空间的例子:

/**
* 创建全局对象MYAPP
* @module MYAPP
* @title MYAPP Global
*/
var MYAPP = MYAPP || {};/**
* 返回指定的命名空间,如果命名空间不存在则创建命名空间。
* 备注:命名时需小心,注意保留关键字,可能在一些浏览器无法使用。
*
* @method namespace
* @param {String *} 至少需要创建一个命名空间
* @return {Object} 最后一个命名空间创建的对象的引用
*/
MYAPP.namespace = function(str){var parts = str.split("."),parent = MYAPP,i=0,l=0;if(parts[0]==="MYAPP"){parts = parts.slice(1);}for(i=0,l=parts.length; i<l;i++){if(typeof parent[parts[i]] === "undefined"){parent[parts[i]] = {};}parent = parent[parts[i]];}return parent;
}/**
* bfun是Basic Functions Extended的缩写
* 作用:包括数组、字符串等等数功能扩展
*
* @module bfun
*/
MYAPP.bfun = {array:(function(){return {/*** @method isArray 判断是否为数组* @param {Array} 数组* @return {Boolean} 真返回true,否则返回false*/isArray: function(){return Object.prototype.toString.call(arguments[0])  === '[object Array]'; },/*** @method inArray 检查值是否在数组中* @param {value,Array} 值,数组* @return {Boolean} 真返回true,否则返回undefined*/inArray: function(val,arr){for(var i=0,l=arr.length;i<l;i++){if(arr[i] === val){return true;}}}}})(),string:(function(){return {/*** @method trim 过滤字符串两边多余的空格* @param {String} 字符串* @return {String} 字符串*/trim: function(){return arguments[0].replace(/(^\s*)|(\s*$)/g, "");},/*** @method ltrim 过滤字符串左边多余的空格* @param {String} 字符串* @return {String} 字符串*/ltrim: function(){return arguments[0].replace(/^s+/g, "");},/*** @method rtrim 过滤字符串右边多余的空格* @param {String} 字符串* @return {String} 字符串*/rtrim: function(){return arguments[0].replace(/s+$/g, "");}}})()
}// 测试
MYAPP.test = {init: function(){// 使用对应的模块先引用var marray = MYAPP.namespace("MYAPP.bfun.array");var mstring = MYAPP.namespace("MYAPP.bfun.string");var arr =  ["a","b"];var str = "   abc  ";console.log("判断是否为数组:" + marray.isArray(arr));console.log("值是否在数组中:" + marray.inArray("a",arr));console.log("过滤左右空格:" + mstring.trim(str));}
}MYAPP.test.init();

转载于:https://www.cnblogs.com/kuikui/p/3190381.html

关于js中namespace命名空间模式相关推荐

  1. JS中的严格模式(Strict Mode)

    什么是严格模式? 严格模式是ECMAScript5的新特性,它是采用具有限制性JavaScript变体的一种方式,从而使代码隐式地脱离"马虎模式/稀松模式/懒散模式"(sloppy ...

  2. JS中使用工厂模式创建对象

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  3. js中的设计模式之组合模式

    Js中的组合模式 定义 是一种将对象组合成树状结构的层次结构模式,用来表示 整体-部分 的关系,使用用户对单个对象和组合对象具有一致的访问性. 详细描述 组合模式是一个树形结构,里面的数据可以是单个对 ...

  4. 在JavaScript中创建命名空间的几种写法

    在JavaScript中全局变量经常会引起命名冲突,甚至有时侯重写变量也不是按照你想像中的顺序来的,可以看看下面的例子: var sayHello = function() {return 'Hell ...

  5. JS中的THIS处理及正则表达式 — 1、callapplyjson

    1.大纲 面向对象深入了解 函数的三种角色:函数也是对象 Function Function.prototype:call/apply/bind 面试题讲解 ... call && a ...

  6. C++中的命名空间namespace

    1.Cpp中的命名空间 假设这样一种情况,当一个班上有两个名叫Zara的学生时,为了明确区分它们,我们在使用名字之外,不得不使用一些额外的信息,比如他们的家庭住址,或者他们父母的名字等等.同样的情况, ...

  7. js架构设计模式——由项目浅谈JS中MVVM模式

    1.    背景 最近项目原因使用了durandal.js和knockout.js,颇有受益.决定写一个比较浅显的总结. 之前一直在用SpringMVC框架写后台,前台是用JSP+JS+标签库,算是很 ...

  8. 由项目浅谈JS中MVVM模式

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.    背景 最近项目原因使用了durandal.js和knock ...

  9. js中的4种函数调用模式:函数调用、方法调用、构造器调用、间接调用

    全栈工程师开发手册 (作者:栾鹏) js系列教程4-函数.函数参数教程全解 js中的4种函数调用模式 javascript一共有4种调用模式:函数调用模式.方法调用模式.构造器调用模式和间接调用模式. ...

最新文章

  1. 传输层协议(TCP/UDP)介绍
  2. 颜色排序(Sort Colors)
  3. Linux 中yum的配置
  4. tortoisegit推送ssh-key需要输入用户信息
  5. JavaFX UI控件教程(三)之Label
  6. 数据中台是下一代大数据_全栈数据科学:下一代数据科学家群体
  7. php print r用法,php中echo(),print(),print_r()用法
  8. 配对(套利)交易之二,符合配对规则回测
  9. quartus仿真28:JK触发器实现的脉冲分配器(分析)
  10. oracle rac的特征
  11. HINSTANCE HANDLE HWND 的区别及一般方法
  12. 中英AlphaGo论文:精通围棋博弈的深层神经网络和树搜索算法(附PDF公号发“AlphaGo论文”下载论文双语对照版)
  13. TFT液晶屏、LCD显示屏40pin接口标准
  14. AJA电源维修DCX750sairem射频发生器维修
  15. Pytorch——报错解决:RuntimeError: Output 0 of SelectBackward is a view and is being modified inplace.
  16. 整理的apollo 入门课程
  17. 使用Kali上的Metasploit获取ssh登录到靶机权限
  18. 如何利用微信进行微信签到呢?
  19. 【计算机网络】利用WireShark分析TCP/UDP协议
  20. 某数4代cookie生成-2

热门文章

  1. win10 mysql 3534_win10 mysql 5.7.13 服务无法启动 3534
  2. infinity mysql_MySql锁机制
  3. express与mysql数据库_express无法连接到mysql数据库
  4. 不会这些基础命令,白做运维了
  5. 【收藏备用】服务器基本故障及排查方法
  6. 应用系统瓶颈排查和分析的思考-Arthas 实战
  7. Kubernetes 入门必备云原生发展简史
  8. linux 中断程序设计,Linux中断编程
  9. 清理计算机英语是什么,如何清理电脑(国外英文资料).doc
  10. pls-00302: 必须声明 组件_vue学习手册-单文件组件使用