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代码
Apr 01 Javascript
js禁止页面使用右键(简单示例代码)
Nov 13 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
Nov 26 Javascript
Javascript基础教程之数据类型 (数值 Number)
Jan 18 Javascript
javascript多物体运动实现方法分析
Jan 08 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
Aug 16 Javascript
D3.js实现饼状图的方法详解
Sep 21 Javascript
详解JS中定时器setInterval和setTImeout的this指向问题
Jan 06 Javascript
实例详解JSON取值(key是中文或者数字)方式
Aug 24 Javascript
Node.js dgram模块实现UDP通信示例代码
Sep 26 Javascript
图片加载完成再执行事件的实例
Nov 16 Javascript
微信小程序图片加载失败时替换为默认图片的方法
Dec 09 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
PHP面向对象学习笔记之一 基础概念
2012/10/06 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
2017/10/13 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
PHP重置数组为连续数字索引的几种方式总结
2018/03/12 PHP
thinkPHP5框架导出Excel文件简单操作示例
2018/08/03 PHP
Laravel框架下载,安装及路由操作图文详解
2019/12/04 PHP
基于jquery的二级联动菜单实现代码
2011/04/25 Javascript
php图像生成函数之间的区别分析
2012/12/06 Javascript
九种js弹出对话框的方法总结
2013/03/12 Javascript
删除javascript所创建子节点的方法
2015/05/21 Javascript
JQuery异步加载PartialView的方法
2016/06/07 Javascript
详解堆的javascript实现方法
2016/11/29 Javascript
vue.js与element-ui实现菜单树形结构的解决方法
2018/04/21 Javascript
Vue2.0 v-for filter列表过滤功能的实现
2018/09/07 Javascript
vue实现与安卓、IOS交互的方法
2018/11/02 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
2019/02/15 Javascript
详解bootstrap-fileinput文件上传控件的亲身实践
2019/03/21 Javascript
d3.js实现图形拖拽
2019/12/19 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
python二分法实现实例
2013/11/21 Python
浅析python 内置字符串处理函数的使用方法
2014/06/11 Python
Python的Django框架中的数据库配置指南
2015/07/17 Python
python数据处理之如何选取csv文件中某几行的数据
2019/09/02 Python
利用pandas合并多个excel的方法示例
2019/10/10 Python
如何对python的字典进行排序
2020/06/19 Python
python为什么要安装到c盘
2020/07/20 Python
在线学习西班牙语、法语或其他语言:Babbel.com
2018/02/07 全球购物
工作交流会欢迎词
2014/01/12 职场文书
年级组长自我鉴定
2014/02/22 职场文书
学校法制宣传月活动总结
2014/07/03 职场文书
幼儿园保育员责任书
2014/07/22 职场文书
学院党委班子四风问题自查报告及整改措施
2014/10/25 职场文书
2015年七七事变78周年纪念活动方案
2015/05/06 职场文书
奖励申请报告范文
2015/05/15 职场文书
一篇文章搞懂python混乱的切换操作与优雅的推导式
2021/08/23 Python
MySQL修改默认引擎和字符集详情
2021/09/25 MySQL