javascript面向对象之二 命名空间


Posted in Javascript onFebruary 08, 2011

最简单创建命名空间的方法:

var java = {}; 
java.util = {}; 
//这样就创建成功了命名空间:java.util 
//我们可以在java.util下面加类(函数),属性,或对象 
java.util.HashMap = function() 
{ 
this.ShowMessage = function() 
{ 
alert("java.util.HashMap"); 
} 
} 
var map = new java.util.HashMap(); 
alert(map.ShowMessage()); //显示结果:java.util.HashMap

//封装创建命名空间的方法:
//定义一个对象,js中用{}花括号定义对象,等同于 var JsObject = new Object();


var JsObject = {}; 
JsObject.namespace = function() //在JsObject对象下定义一个函数namespace 
{ 
 /*下面代码中arguments为函数传入的参数,在function未明确定义参数时, 
function也可以传入参数,并用arguments来 接收,arguments类似数组, 

如果传入多个参数,将按顺序保存,取值法:arguments[0],arguments[1]....*/ 
var a = arguments,o = null,d,rt; 
for(var i = 0; i < a.length; i++) 
{ 
d = a[i].split('.'); //将传入的参数用符号'.' 进行分割,并放入d数组中。 
rt = d[0]; 
//判断数组中的第一个值是否未定义,如果未定义,便定义为空对象{},并赋值给变量o 
eval('if (typeof ' + rt + ' == "undefined"){' 



+ rt + ' = {};} o = ' + rt + ';'); 

for(var j = 1; j < d.length; j++) 

{ 


/*循环遍历数组d每个值作为key,加入到对象o中,如果key在o中存在,则取o中值,若 


不存在,则赋值为空对象{} */ 
 


o[d[j]] = o[d[j]] || {}; 

  o = o[d[j]]; 

} 
} 
} 
JsObject.namespace("org.myJs"); //申明命名空间:org.myJs 
org.myJs.Student = function() //在命名空间org.myJs下定义类Student 
{ 


//定义类Student中的变量,并赋予初值,但此变量的访问权限是public 
this.studentNo = 's001'; 
this.studentName = '小明'; 
this.sex = '男'; 
} 
var s = new org.myJs.Student(); //创建Student类的对象 
alert('学号:'+s.studentNo); 
alert('姓名:'+s.studentName); 
alert('性别:'+s.sex);

效果和第一篇 (一)javascript经验总结面向对象—类 结果一样
Javascript 相关文章推荐
js 变量类型转换常用函数与代码[比较全]
Dec 01 Javascript
类似GMAIL的Ajax信息反馈显示
Feb 16 Javascript
jquery animate图片模向滑动示例代码
Jan 26 Javascript
jquery.blockUI.js上传滚动等待效果实现思路及代码
Mar 18 Javascript
js中array的sort()方法使用介绍
Feb 20 Javascript
控制文字内容的显示与隐藏示例
Jun 11 Javascript
JS实现很酷的水波文字特效实例
Feb 26 Javascript
js实现从中间开始往上下展开网页窗口的方法
Mar 02 Javascript
JS数字千分位格式化实现方法总结
Dec 16 Javascript
详解使用vue-cli脚手架初始化Vue项目下的项目结构
Mar 08 Javascript
解决Vue动态加载本地图片问题
Oct 09 Javascript
js中实现继承的五种方法
Jan 25 Javascript
javascript中的对象创建 实例附注释
Feb 08 #Javascript
kmock javascript 单元测试代码
Feb 06 #Javascript
一次失败的jQuery优化尝试小结
Feb 06 #Javascript
DOM_window对象属性之--clipboardData对象操作代码
Feb 03 #Javascript
基于jQuery的自动完成插件
Feb 03 #Javascript
jQuery初学:find()方法及children方法的区别分析
Jan 31 #Javascript
javascript event 事件解析
Jan 31 #Javascript
You might like
星际争霸任务指南——虫族
2020/03/04 星际争霸
PHP验证码类代码( 最新修改,完全定制化! )
2010/12/02 PHP
php array的学习笔记
2012/05/10 PHP
如何取得中文字符串中出现次数最多的子串
2013/08/08 PHP
CodeIgniter中使用cookie的三种方式详解
2014/07/18 PHP
PHPUnit安装及使用示例
2014/10/29 PHP
js no-repeat写法 背景不重复
2009/03/18 Javascript
JavaScript CSS修改学习第三章 修改样式表
2010/02/19 Javascript
多浏览器兼容性比较好的复制到剪贴板的js代码
2011/10/09 Javascript
jquery提示效果实例分析
2014/11/25 Javascript
js纯数字逐一停止显示效果的实现代码
2016/03/16 Javascript
深入理解JavaScript内置函数
2016/06/03 Javascript
JavaScript的this关键字的理解
2016/06/18 Javascript
js Date()日期函数浏览器兼容问题解决方法
2017/09/12 Javascript
JS实现随机抽取三人
2019/11/06 Javascript
JavaScript实现拖拽功能
2020/02/11 Javascript
es6中new.target的作用和使用场景简单示例分析
2020/03/14 Javascript
[01:20:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第四场 8.26
2018/08/30 DOTA
Python类方法__init__和__del__构造、析构过程分析
2015/03/06 Python
Python实现针对含中文字符串的截取功能示例
2017/09/22 Python
pip install urllib2不能安装的解决方法
2018/06/12 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
Mac PyCharm中的.gitignore 安装设置教程
2020/04/16 Python
Python实现aes加密解密多种方法解析
2020/05/15 Python
Python实现对word文档添加密码去除密码的示例代码
2020/12/29 Python
澳大利亚香水在线:Price Rite Mart
2017/12/28 全球购物
Charles&Keith美国官方网站:新加坡快时尚鞋类和配饰零售商
2019/11/27 全球购物
护士自荐信
2013/10/25 职场文书
服务员自我评价
2014/01/25 职场文书
九年级数学教学反思
2014/02/02 职场文书
中秋晚会活动方案
2014/08/31 职场文书
公司离职证明标准格式
2014/11/18 职场文书
2014矛盾纠纷排查调处工作总结
2014/12/09 职场文书
一条 SQL 语句执行过程
2022/03/17 MySQL
MyBatis配置文件解析与MyBatis实例演示
2022/04/07 Java/Android
Python函数对象与闭包函数
2022/04/13 Python