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淡入淡出效果的实现思路
Mar 31 Javascript
Extjs4 GridPanel的主要配置参数详细介绍
Apr 18 Javascript
javascript中typeof的使用示例
Dec 19 Javascript
分享一款基于jQuery的视频播放插件
Oct 09 Javascript
浅谈被jQuery抛弃的函数及替代函数
May 03 Javascript
javascript事件冒泡和事件捕获详解
May 26 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
Sep 13 Javascript
实现easyui的datagrid导出为excel的示例代码
Nov 10 Javascript
详解前端构建工具gulpjs的使用介绍及技巧
Jan 19 Javascript
Angular4 组件通讯方法大全(推荐)
Jul 12 Javascript
angular 未登录状态拦截路由跳转的方法
Oct 09 Javascript
在vue中使用inheritAttrs实现组件的扩展性介绍
Dec 07 Vue.js
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
php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
2010/08/21 PHP
php实现兼容2038年后Unix时间戳转换函数
2015/03/18 PHP
thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
2018/01/15 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
2019/12/12 PHP
JQuery each()函数如何优化循环DOM结构的性能
2012/12/10 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
2015/03/27 Javascript
Angularjs实现分页和分页算法的示例代码
2016/12/23 Javascript
区别JavaScript函数声明与变量声明
2018/09/12 Javascript
Electron vue的使用教程图文详解
2019/07/05 Javascript
基于Vue CSR的微前端实现方案实践
2020/05/27 Javascript
Vue 封装防刷新考试倒计时组件的实现
2020/06/05 Javascript
javascript实现京东快递单号的查询效果
2020/11/30 Javascript
python轻松实现代码编码格式转换
2015/03/26 Python
使用beaker让Facebook的Bottle框架支持session功能
2015/04/23 Python
用Python设计一个经典小游戏
2017/05/15 Python
Python2.7编程中SQLite3基本操作方法示例
2017/08/09 Python
python 实现tar文件压缩解压的实例详解
2017/08/20 Python
在python中将字符串转为json对象并取值的方法
2018/12/31 Python
Python实现程序判断季节的代码示例
2019/01/28 Python
将Python字符串生成PDF的实例代码详解
2019/05/17 Python
python模拟菜刀反弹shell绕过限制【推荐】
2019/06/25 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
2019/10/01 Python
python将时分秒转换成秒的实例
2019/12/07 Python
Python定时任务APScheduler安装及使用解析
2020/08/07 Python
Django url 路由匹配过程详解
2021/01/22 Python
如何用Python进行时间序列分解和预测
2021/03/01 Python
让IE支持HTML5的方法
2012/12/11 HTML / CSS
html5唤起app的方法
2017/11/30 HTML / CSS
DAWGS鞋官方网站:鞋,凉鞋,靴子
2016/10/04 全球购物
财产公证书样本
2014/04/04 职场文书
幼儿园区域活动总结
2014/05/08 职场文书
环保倡议书50字
2014/05/15 职场文书
党员教师自我剖析材料
2014/09/29 职场文书
倡议书的格式写法
2015/04/28 职场文书
nginx常用命令放入shell脚本详解
2021/03/31 Servers
Oracle表空间与权限的深入讲解
2021/11/17 Oracle