JavaScript-JS命名空间的构造和实现-[web前端开发]

所谓命名空间,就是通过 com.proj.common.dosomething 这样的形式使用和访问脚本。

为什么要这样做?

1。项目很大,应用程序繁杂,使用长路径清晰,容易理解,分门别类;

2。可以方法重名,比如你的项目里可能很多 showABC() 这样的方法,是不是很乱?

使用命名空间 com.proj.a.showABC() 和 com.proj.b.showABC() 就会区分开来;

3。可以将javascript按 包的形式封装起来,和我们 JAVA web 项目里的分层管理趋于一致;

4。有利于代码更新,升级和维护。


命名空间的构造:

/**
 * 命名空间的创建
 * 支持 xxx.xxx.xxx命名访问
 * 
 * 
 */
function NamespacesPrototype() {
	
	function access(c, d, e) {
		c[d] = e;
		e._path = c._path ? (c._path + "." + d) : d;
		e._parent = c;
	}
	function make(d, f, c) {
		var e = f.shift();
		if (0 == f.length) {
			access(d, e, c());
		} else {
			if (!d[e]) {
				access(d, e, {});
			}
			make(d[e], f, c);
		}
	}
	
	this.create = function (nameString, custfun) {
		make(window, nameString.split("."), function () {
			return new custfun();
		});
	};
	this.register = function (nameString, custfun) {
		make(window, nameString.split("."), function () {
			return custfun;
		});
	};
};
/**
 * 创建命名空间
 */
var Namespaces;
if (!Namespaces) {
	Namespaces = new NamespacesPrototype();
};
//命名空间的自定义
Namespaces.create("com.proj.common", function () {
	
	 this.a= 'This is my code';
         this.b = function (){
          // your method
          alert('my method-' + this.a);
          };	
	//TODO orthers code here. 
});
//使用
...
com.proj.common.b(); // output 'my method-This is my code'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安优小青和他的程序生活

我的文档对您有很大的帮助吗?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值