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 相关文章推荐
javascript中的new使用
Mar 20 Javascript
JQuery中form验证出错信息的查看方法
Oct 08 Javascript
使用jquery实现以post打开新窗口
Mar 19 Javascript
js 调用百度地图api并在地图上进行打点添加标注
May 13 Javascript
jQuery切换网页皮肤并保存到Cookie示例代码
Jun 16 Javascript
node.js中使用socket.io的方法
Dec 15 Javascript
使用Bootstrap美化按钮实例代码(demo)
Feb 03 Javascript
[原创]js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器
Feb 14 Javascript
JavaScript两种计时器的实例讲解
Jan 31 Javascript
基于vue、react实现倒计时效果
Aug 26 Javascript
layUI使用layer.open,在content打开数据表格,获取值并返回的方法
Sep 26 Javascript
如何通过vscode运行调试javascript代码
Jul 24 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
支付宝服务窗API接口开发php版本
2016/07/20 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
Laravel 在views中加载公共页面的实现代码
2019/10/22 PHP
JS动画效果代码3
2008/04/03 Javascript
用js来定义浏览器中一个左右浮动元素相对于页面主体宽度的位置的函数
2012/01/21 Javascript
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
Jquery中国地图热点效果-鼠标经过弹出提示层信息的简单实例
2014/02/12 Javascript
JavaScript数组去重的两种方法推荐
2016/04/05 Javascript
全面解析JavaScript的Backbone.js框架中的Router路由
2016/05/05 Javascript
jquery实现轮播图效果
2017/02/13 Javascript
vue.js整合mint-ui里的轮播图实例代码
2017/12/27 Javascript
基于vue-cli3和element实现登陆页面
2019/11/13 Javascript
[09:43]DOTA2每周TOP10 精彩击杀集锦vol.5
2014/06/25 DOTA
Python3网络爬虫之使用User Agent和代理IP隐藏身份
2017/11/23 Python
Python进阶学习之特殊方法实例详析
2017/12/01 Python
Python装饰器知识点补充
2018/05/28 Python
Pandas 同元素多列去重的实例
2018/07/03 Python
mac安装pytorch及系统的numpy更新方法
2018/07/26 Python
Python+selenium 获取浏览器窗口坐标、句柄的方法
2018/10/14 Python
Python将文字转成语音并读出来的实例详解
2019/07/15 Python
详解如何用TensorFlow训练和识别/分类自定义图片
2019/08/05 Python
Python根据字典的值查询出对应的键的方法
2020/09/30 Python
pymysql模块使用简介与示例
2020/11/17 Python
阿迪达斯加拿大官网:Adidas加拿大
2016/08/25 全球购物
如何用PHP实现邮件发送
2012/12/26 面试题
Servlet的实例是在生命周期什么时候创建的?配置servlet最重要的是什么?
2012/05/30 面试题
高中地理教学反思
2014/01/29 职场文书
社区戒毒工作方案
2014/06/04 职场文书
质量标语大全
2014/06/12 职场文书
中药学自荐信
2014/06/15 职场文书
村道德模范事迹材料
2014/08/28 职场文书
上市公司财务总监岗位职责
2015/04/03 职场文书
2015年九一八事变纪念活动实施方案
2015/05/06 职场文书
2015年妇幼卫生工作总结
2015/05/23 职场文书
我的1919观后感
2015/06/03 职场文书
对讲机的最大通讯距离是多少
2022/02/18 无线电