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 可以拖动的DIV(二)
Jun 26 Javascript
使用JavaScript 实现各种跨域的方法
May 08 Javascript
JavaScript中的eval()函数详解
Aug 22 Javascript
整理Javascript基础语法学习笔记
Nov 29 Javascript
很棒的js Tab选项卡切换效果
Aug 30 Javascript
Vue.JS入门教程之处理表单
Dec 01 Javascript
jQuery Ajax File Upload实例源码
Dec 12 Javascript
使用Dropzone.js上传的示例代码
Oct 10 Javascript
JS点击动态添加标签、删除指定标签的代码
Apr 18 Javascript
vue-cli3使用mock数据的方法分析
Mar 16 Javascript
用vue设计一个日历表
Dec 03 Vue.js
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 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中foreach()用法汇总
2015/07/02 PHP
apache集成php7.3.5的详细步骤
2019/06/20 PHP
Nigma vs Liquid BO3 第一场2.14
2021/03/10 DOTA
对YUI扩展的Gird组件 Part-1
2007/03/10 Javascript
用javascript控制iframe滚动的代码
2007/04/10 Javascript
Javascript下的keyCode键码值表
2007/04/10 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
2014/04/12 Javascript
javaScript使用EL表达式的几种方式
2014/05/27 Javascript
jquery动态添加删除一行数据示例
2014/06/12 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
2016/09/14 Javascript
基于Node.js的WebSocket通信实现
2017/03/11 Javascript
mint-ui 时间插件使用及获取选择值的方法
2018/02/09 Javascript
快速解决bootstrap下拉菜单无法隐藏的问题
2018/08/10 Javascript
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
vue源码nextTick使用及原理解析
2019/08/13 Javascript
python数据结构树和二叉树简介
2014/04/29 Python
Python3基础之基本运算符概述
2014/08/13 Python
Python and、or以及and-or语法总结
2015/04/14 Python
Python导入模块时遇到的错误分析
2017/08/30 Python
python定位xpath 节点位置的方法
2019/08/27 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
2019/10/09 Python
通过celery异步处理一个查询任务的完整代码
2019/11/19 Python
python操作cfg配置文件方式
2019/12/22 Python
Python类继承和多态原理解析
2020/02/05 Python
洛杉矶健身中心女性专用运动服饰品牌:Marika
2018/05/09 全球购物
英国最受欢迎的平价女士时装零售商:Roman Originals
2019/11/02 全球购物
L’Artisan Parfumeur官网:法国香水品牌
2020/08/11 全球购物
几个判断型的面试题
2012/07/03 面试题
体育比赛口号
2014/06/09 职场文书
小学毕业典礼演讲稿
2014/09/09 职场文书
自愿离婚协议书范本
2015/01/26 职场文书
Nginx+SpringBoot实现负载均衡的示例
2021/03/31 Servers
css3中transform属性实现的4种功能
2021/08/07 HTML / CSS
python编程学习使用管道Pipe编写优化代码
2021/11/20 Python