`

一个完整的包命名空间定义实现的代码 -- 色色原创

阅读更多
//定义顶块命名空间
if (!window['BJE']) {
	window['BJE'] = {};
}

/**
 * 包列表 -- 用于调试使用
 * @type {}
 */
BJE.packageList = [];
/**
 * 定义包命名空间
 * 
 * @packageNames 包名
 * BJE.package("bje.css.sprite",'bje.ext');
 */
 BJE.package = function() {
	
	/**
	 * 验证包是否存在 
	 * 从前往后验证,前置包节点不存在,返回false,所有包节点匹配返回true
	 * 验证的目的,在于不重复创建
	 */
	function isPackageExist(packageName){		
		var nsArr = packageName.split(".");		
		var ns = '' ,noDefine = false  ;
		var tpl = 'if (typeof #ns#  == "undefined") noDefine = true ;';
		for(k in nsArr){
			ns += nsArr[k] + "." ; 
			// 要替换最后的.号			
			//eval('if (typeof ' + ns.replace(/.$/gi, "") + ' == "undefined") noDefine = true ;');
			eval(tpl.replace(/#ns#/gi,ns.replace(/.$/gi, "")));			
			if (noDefine)
				return false ;
		}
		BJE.packageList.push(packageName) ;
		return true ;
	}
	
	/**
	 * 创建包 -- 传入包名
	 */
	function create(packageName){
		if (!isPackageExist(packageName)){
			//do something ...	
			var o = null, i, j, d, rt;
			d = packageName.split(".");
			rt = d[0];
			eval('if (typeof ' + rt + ' == "undefined"){' + rt + ' = {};} o = '
					+ rt + ';');
			for (j = 1; j < d.length; ++j) {
				o[d[j]] = o[d[j]] || {};
				o = o[d[j]];
			}
			BJE.packageList.push(packageName) ;
		}
	}
	
	function remove(packageName){
		if (isPackageExist(packageName)){
			//do something ...	
		}
	}
	
	var packageNames = arguments;
	for (i = 0; i < packageNames.length; ++i) {
		//var packageNameArray = packageNames[i].split(".");
		if (!isPackageExist(packageNames[i]))
			create(packageNames[i]);
	}
}

 

 

还是有些不完整,测试如下"

 

BJE.package("BJE.css.sprite", 'BJE.ext', 'BJE.ext.mail');
alert(BJE.packageList);

分享到:
评论
2 楼 vb2005xu 2009-08-25  
function isNumber(val) {   
    //return typeof val == "number"; 不能验证数字字符串  
    //return /^\d+$/.test(val);   不能验证 小数
    return /^\d+(\.\d+)?$/.test(val); 
} 
var iv = isNumber ;
alert(iv(123) + "/" + iv(123.2) + "/"  + iv("123") + "/"  + iv("123.23") + "/" + iv("12.21a") );



递进学习js 验证是否为数字
1 楼 atian25 2009-08-11  
Ext.ns()

相关推荐

    QeePHP 快速入门 -- 色色pdf版本 -- 第一章初步完成

    社区里的文档无PDF版本,...妖怪老大让偶做,可惜今天仅仅完成一章,不过word的样式基本建立差不多了.因为word好长时间没有使用,都忘却了. 希望在这个栏目整理出一套FLEAPHP/QEEPHP的专题资料出来 呵呵呵! 偶是PHP程序员

    mac系统使用指南之色色篇

    【压缩包子文件的文件名称列表】只有一个文件:svn-sftp-keygen.app,这个文件名表明它是一个应用程序,很可能与版本控制系统Subversion(SVN)和Secure File Transfer Protocol(SFTP)有关。`svn-sftp-keygen.app`...

    JAVA常用正则能用的 -- 色色尝试过的 -- 非网上传播的垃圾版本的

    在Java中,你可以使用`Pattern.compile(String regex)`方法来创建一个正则表达式模式。例如: ```java Pattern pattern = Pattern.compile("^[a-zA-Z0-9]+$"); ``` 这个模式表示只包含字母和数字的字符串。 2....

    网页颜色代码全集网页颜色代码全集

    本资料包“网页颜色代码全集”提供了一个全面的颜色代码参考,对于网页设计师和前端开发者来说极其有用。 颜色代码主要有以下几种表示方式: 1. **RGB(红绿蓝)**:RGB是一种基于光的模型,通过红色、绿色和蓝色...

    视频资源网站代码

    标题 "视频资源网站代码" 暗示了这是一个关于构建在线视频播放平台的源码,可能包含用于展示、管理和分发视频内容的核心功能。描述提到该源码具有自动更新视频内容的功能,这可能是通过某种自动化机制,如定时任务...

    我也来学习nodejs 没有就自己来 色色实现迷你 MVC

    2. **Express.js**:一个轻量级的Node.js Web应用框架,提供了构建Web应用的结构和中间件功能,是实现MVC的重要工具。 3. **路由(Routing)**:定义URL到特定处理函数的映射,这是控制器的核心部分,用于处理用户...

    色色推箱子游戏色色推箱子游戏

    在这个游戏世界里,"色色"是一个形象化的角色名称,它的存在给游戏增添了一份亲切感。 游戏的另一个亮点在于它的开源性。开源意味着所有对编程和游戏开发感兴趣的用户都可以自由地查看、学习甚至修改游戏的源代码。...

    网页背景色自由调试色彩代码

    网页背景色是网页设计中的一个重要元素,它对网站的整体视觉效果和用户体验有着显著的影响。调试网页背景色通常涉及到颜色选择、颜色模式理解以及相应的代码应用。在这个“网页背景色自由调试色彩代码”中,我们将...

    色卡app开发源代码

    色卡App开发源代码是一个关于创建色彩参考工具的软件项目,它可以帮助设计师、艺术家或任何对颜色搭配有需求的人快速浏览、选择和测试颜色组合。这个项目的核心是提供一个直观的用户界面,让用户能够轻松地浏览不同...

    看你有多色游戏源码

    这个游戏的源代码是作者参照极客学院的视频教程编写的,因此,它为学习JavaScript和EaselJS库的开发者提供了一个实践的平台。 【描述】:描述中提到,游戏可能存在一个已知的问题,即在特定情况下,颜色可能会显示...

    标准24色色卡

    标准24色色卡,调试sensor时方便测试。标准24色色卡,调试sensor时方便测试。标准24色色卡,调试sensor时方便测试。

    植物大战僵尸素材包-含gif动画

    总的来说,"植物大战僵尸素材包-含gif动画"是一个全面且实用的游戏开发资源,它为初级游戏开发者提供了一套现成的角色模型和动画效果,大大简化了游戏开发的前期工作,使开发者能够更加专注于游戏玩法和策略的设计,...

    色影空间上网导航(极致美化版)

    色影空间上网导航是一款经过极致美化的网页导航系统,它为用户提供了一个简洁、美观的界面,方便用户快速访问各类网站。这款系统具有后台管理功能,允许管理员进行个性化设置和维护。通过提供的登录信息,我们可以...

    微信小游戏-看谁最色

    总的来说,开发"微信小游戏-看谁最色"涉及到了前端开发、游戏设计、用户体验和广告投放等多个方面,对于想要学习微信小游戏开发的人员来说,这是一个很好的实践项目,可以深入理解如何在微信平台上构建一款完整的...

    安卓插件机制相关-apk插件化加载demo.rar

    【安卓插件机制相关】 ...总之,这个压缩包中的demo是一个宝贵的教育资源,可以帮助你深入理解安卓插件化的实现原理,并提供动手实践的机会。通过研究和学习,你将能够构建自己的插件化框架,提升你的安卓开发技能。

    99乘法表代码.rar

    首先,程序会定义一个二维数组,用于存储乘法表的所有结果。数组的行数和列数都是10,因为乘法表涉及的是1到9之间的乘积。然后,通过两层嵌套循环,分别遍历行号和列号。在每次循环中,程序会计算当前行号和列号的...

    UnityShader 实现3D模型颜色渐变效果

    在Unity游戏引擎中,Shader是控制物体表面渲染的关键组件,它可以实现...这只是一个基础示例,实际项目中,你可以进一步探索Shader的潜力,实现更多创意和特效。记得在实际操作中,不断测试和调整,以达到理想的效果。

Global site tag (gtag.js) - Google Analytics