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 动态加载脚本的4种方法
May 05 Javascript
JavaScript 模拟用户单击事件
Dec 31 Javascript
JavaScript调用堆栈及setTimeout使用方法深入剖析
Feb 16 Javascript
textarea 控制输入字符字节数(示例代码)
Dec 27 Javascript
使用javascript做的一个随机点名程序
Feb 13 Javascript
JavaScript函数节流和函数防抖之间的区别
Feb 15 Javascript
JS判断一个数是否是水仙花数
Jun 11 Javascript
vue.js系列中的vue-fontawesome使用
Feb 10 Javascript
解决vue路由后界面没有变化,但是链接有的问题
Sep 01 Javascript
详解小程序rich-text对富文本支持方案
Nov 28 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
Aug 09 Javascript
在vue中阻止浏览器后退的实例
Nov 06 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下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
2011/06/09 PHP
解析MySql与Java的时间类型
2013/06/22 PHP
php 去除html标记--strip_tags与htmlspecialchars的区别详解
2013/06/26 PHP
兼容PHP和Java的des加密解密代码分享
2014/06/26 PHP
php面向对象程序设计中self与static的区别分析
2019/05/21 PHP
JavaScript 私有成员分析
2009/01/13 Javascript
jquery重新播放css动画所遇问题解决
2013/08/21 Javascript
ExpressJS入门实例
2015/01/14 Javascript
JavaScript实现模仿桌面窗口的方法
2015/07/18 Javascript
jQuery实现百叶窗焦点图动画效果代码分享(附源码下载)
2016/03/14 Javascript
浅谈Sticky组件的改进实现
2016/03/22 Javascript
浅谈JS之iframe中的窗口
2016/09/13 Javascript
canvas实现钟表效果
2017/02/13 Javascript
JS动态修改网页body的背景色实例代码
2017/10/07 Javascript
NodeJS实现视频转码的示例代码
2017/11/18 NodeJs
在layui中layer弹出层点击事件无效的解决方法
2019/09/05 Javascript
VsCode与Node.js知识点详解
2019/09/05 Javascript
对layui初始化列表的CheckBox属性详解
2019/09/13 Javascript
JavaScript如何判断input数据类型
2020/02/06 Javascript
Express 配置HTML页面访问的实现
2020/11/01 Javascript
python 生成目录树及显示文件大小的代码
2009/07/23 Python
Python标准库inspect的具体使用方法
2017/12/06 Python
python爬取微信公众号文章的方法
2019/02/26 Python
Python实现图像的垂直投影示例
2020/01/17 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
python如何安装下载后的模块
2020/07/03 Python
Python3获取cookie常用三种方案
2020/10/05 Python
StubHub意大利:购买和出售全球演唱会和体育赛事门票
2017/11/21 全球购物
最耐用行李箱,一箱永流传:Briggs & Riley(全球终身保修)
2017/12/07 全球购物
丝芙兰墨西哥官网:Sephora墨西哥
2020/05/30 全球购物
本科生职业生涯规划书范文
2014/01/21 职场文书
公司活动总结怎么写
2014/06/25 职场文书
写给妈妈的感谢信
2015/01/22 职场文书
莫言获奖感言(全文)
2015/07/31 职场文书
浅析Python实现DFA算法
2021/06/26 Python
CSS实现鼠标悬浮动画特效
2023/05/07 HTML / CSS