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中的Screen屏幕对象
Jan 16 Javascript
Dom加载让图片加载完再执行的脚本代码
May 15 Javascript
javascript数组快速打乱重排的方法
Jan 02 Javascript
JavaScript使用Prototype实现面向对象的方法
Apr 14 Javascript
Javascript类型转换的规则实例解析
Feb 23 Javascript
jQuery自定义插件详解及实例代码
Dec 29 Javascript
利用iscroll4实现轮播图效果实例代码
Jan 11 Javascript
利用canvas实现的加载动画效果实例代码
Jul 05 Javascript
React Native开发封装Toast与加载Loading组件示例
Sep 08 Javascript
laydate时间日历插件使用方法详解
Nov 14 Javascript
五分钟搞懂Vuex实用知识(小结)
Aug 12 Javascript
详解JS WebSocket断开原因和心跳机制
May 07 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批量检测并去除文件BOM头代码实例
2014/05/08 PHP
详解PHP的Yii框架中的Controller控制器
2016/03/29 PHP
PHP连接MySQL数据库并以json格式输出
2018/05/21 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例
2019/04/03 PHP
php写入mysql中文乱码的实例解决方法
2019/09/17 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
javascript 表单验证常见正则
2009/09/28 Javascript
文本框的字数限制功能jquery插件
2009/11/24 Javascript
jquery中ajax学习笔记4
2011/10/16 Javascript
jquery的选择器的使用技巧之如何选择input框
2013/09/22 Javascript
Javascript通过overflow控制列表闭合与展开的方法
2015/05/15 Javascript
浅析jQuery中使用$所引发的问题
2016/05/29 Javascript
JCrop+ajaxUpload 图像切割上传的实例代码
2016/07/20 Javascript
浅谈javascript中的三种弹窗
2016/10/21 Javascript
jQuery Password Validation密码验证
2016/12/30 Javascript
canvas实现图像布局填充功能
2017/02/06 Javascript
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
2017/04/10 jQuery
从零开始学习Node.js系列教程二:文本提交与显示方法
2017/04/13 Javascript
解决vue项目打包后提示图片文件路径错误的问题
2018/07/04 Javascript
Vue.js组件实现选项卡以及切换特效
2019/07/24 Javascript
JavaScript canvas动画实现时钟效果
2020/02/10 Javascript
解决VUE项目localhost端口服务器拒绝连接,只能用127.0.0.1的问题
2020/08/14 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
2020/11/27 Vue.js
Python中的CURL PycURL使用例子
2014/06/01 Python
python对指定目录下文件进行批量重命名的方法
2015/04/18 Python
不可错过的十本Python好书
2017/07/06 Python
Python学习之用pygal画世界地图实例
2017/12/07 Python
Python实现自动发送邮件功能
2021/03/02 Python
python 实现在Excel末尾增加新行
2018/05/02 Python
Django使用unittest模块进行单元测试过程解析
2019/08/02 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
2019/11/19 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
2020/08/18 Python
前台接待员岗位职责
2014/01/02 职场文书
2015年世界艾滋病日活动总结
2015/03/24 职场文书
李清照的诗词赏析(20首)
2019/08/22 职场文书