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 相关文章推荐
模拟jQuery中的ready方法及实现按需加载css,js实例代码
Sep 27 Javascript
使用jQuery和Bootstrap实现多层、自适应模态窗口
Dec 22 Javascript
JavaScript开发者必备的10个Sublime Text插件
Feb 27 Javascript
js实现密码强度检测【附示例】
Mar 30 Javascript
JavaScript第一篇之实现按钮全选、功能
Aug 21 Javascript
详解JS对象封装的常用方式
Dec 30 Javascript
Vue.js结合bootstrap实现分页控件
Mar 10 Javascript
基于jQuery和CSS3实现APPLE TV海报视差效果
Jun 16 jQuery
移动端触摸滑动插件swiper使用方法详解
Aug 11 Javascript
element的el-table中记录滚动条位置的示例代码
Nov 06 Javascript
js数据类型转换与流程控制操作实例分析
Dec 18 Javascript
JavaScript实现联动菜单特效
Jan 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中文编码小技巧
2014/12/25 PHP
jQuery如何取id有.的值一般的方法是取不到的
2014/04/18 Javascript
浅析四种常见的Javascript声明循环变量的书写方式
2015/10/14 Javascript
javascript动态生成树形菜单的方法
2015/11/14 Javascript
浅谈javascript 函数表达式和函数声明的区别
2016/01/05 Javascript
js采用concat和sort将N个数组拼接起来的方法
2016/01/21 Javascript
javascript的正则匹配方法学习
2016/02/24 Javascript
js获取当前页的URL与window.location.href简单方法
2017/02/13 Javascript
Javascript调试之console对象——你不知道的一些小技巧
2017/07/10 Javascript
js实现本地时间同步功能
2017/08/26 Javascript
原生js实现简单的模态框示例
2017/09/08 Javascript
使用vue如何构建一个自动建站项目
2018/02/05 Javascript
vue 路由嵌套高亮问题的解决方法
2018/05/17 Javascript
如何使用vuex实现兄弟组件通信
2018/11/02 Javascript
vue实现路由切换改变title功能
2019/05/28 Javascript
jQuery实现动态加载(按需加载)javascript文件的方法分析
2019/05/31 jQuery
浅谈Vue3.0之前你必须知道的TypeScript实战技巧
2019/09/11 Javascript
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
2020/08/20 NodeJs
vue组件添加事件@click.native操作
2020/10/30 Javascript
vue+iview使用树形控件的具体使用
2020/11/02 Javascript
解决element-ui的下拉框有值却无法选中的情况
2020/11/07 Javascript
解决js中的setInterval清空定时器不管用问题
2020/11/17 Javascript
学习python (1)
2006/10/31 Python
Python用5行代码实现批量抠图的示例代码
2020/04/14 Python
python图片验证码识别最新模块muggle_ocr的示例代码
2020/07/03 Python
Python Charles抓包配置实现流程图解
2020/09/29 Python
python爬虫筛选工作实例讲解
2020/11/23 Python
匡威爱尔兰官网:Converse爱尔兰
2019/06/09 全球购物
JBL美国官方商店:扬声器、耳机等
2019/12/01 全球购物
关键字final的用法
2013/10/02 面试题
Android面试题附答案
2014/12/08 面试题
优秀班干部事迹材料
2014/01/26 职场文书
城管综合整治方案
2014/05/01 职场文书
优秀护士先进事迹
2014/05/08 职场文书
优秀工会工作者事迹材料
2014/06/02 职场文书
Windows11性能真的上涨35%? 桌面酷睿i9实测结果公开
2021/11/21 数码科技