javascript简单实现命名空间效果
JavaScript 实现 简单 空间 效果 命名
2023-06-13 09:15:19 时间
Javascript原生并不支持命名空间,需要变通来实现。
在我们创建一个JavaScript库时,命名空间就显得举足轻重了,我们可以将组成这个JavaScript库的零散的JavaScript文件(*.js)封装在命名空间中,而无须定义全局的函数或类。比如在本章节多次出现的Person,我们就可以作为库的一部分封装到合适的命名空间中:
Code5-13:
varcom={};
com.anyjava={};
com.anyjava.Person=function(name){
//私有成员
var_name=name;
//访问器
this.getName=function(){
return_name;
};
this.setName=function(name){
_name=name;
};
};
//原型
com.anyjava.Person.prototype={
eat:function(){
alert(this.getName()+"iseatingsomething.");
},
sleep:function(){
alert(this.getName()+"issleeping.");
},
walk:function(){
alert(this.getName()+"iswalking.");
}
};
vardirk=newcom.anyjava.Person("Dirk");
dirk.eat();
从Code5-13中,我们得到了一个比较符合Java开发人员习惯的命名空间,而且在实例化Person对象时,也要指定我们的命令空间路径。
这里说一个小技巧,如果你正在使用一个别人开发好的,且带有比较完整的命名空间规划的JavaScript库时,可能你会对每次都写冗长的命名空间赶到厌倦。比如说您正在使用我开发的JavaScript库,在com.anyjava.control.ui命名空间下,有很多您要用到的扩展UI控件,我估计您也不希望要书写很多次的varxxx=newcom.anyjava.control.ui.XXX()。通过指定命名空间别名的方式,我们可以书写更少的重复代码,如Code5-14所示的另一种实例化Code5-13中Person的方法:
Code5-14:
varns=com.anyjava;
vardirk=newns.Person("Dirk");
dirk.eat();
最后我将要说明的是,使用命名空间时,需要注意的一个问题。在书写JavaScript库时,大多数情况下命名空间声明语句可能会同时出现在一个JavaScript文件的多个位置,或者是出现多个JavaScript文件中,但是JavaScript语言特性是最后声明的变量会覆盖前边声明的同名变量,这就需要我们注意重复声明的问题,也就是说每次声明命名空间对象时,建议先判断下这个命名空间对象是否已经存在,如Code5-15所示:
Code5-15:
if(typeofcom.anyjava=="undefined")varcom.anyjava={};
这样我们就能保证“com.anyjava”对象只声明一次了。
相关文章
- JavaScript中var与新定义的ES6中的let的区别
- JavaScript时间个性化输出功能详解编程语言
- JavaScript中的类继承实现方式详解编程语言
- JavaScript获取浏览器类型与版本详解编程语言
- Javascript操纵Cookie实现购物车程序
- 实现一个年、月、季度联动SELECT的javascript代码
- javascript实现上传图片前的预览(TX的面试题)
- Javascript入门学习第三篇js运算
- JavaScript继承详解(一)
- javascript二维数组的实现与应用
- javascript就地编辑实现代码
- 用Javascript实现Sleep暂停功能代码
- 一个简单的JavaScript数据缓存系统实现代码
- javascript延迟加载技术(lazyload)简单实现
- C#中TrimStart,TrimEnd,Trim在javascript上的实现
- javascript算法学习实现代码
- javascript淡入淡出效果的实现思路
- JavaScript打开word文档的实现代码(c#)
- javascript+xml实现简单图片轮换(只支持IE)
- js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
- JavaScript中“基本类型”之争小结
- JavaScript栏目列表隐藏/显示简单实现
- asp.net中倒计时自动跳转页面的实现方法(使用javascript)
- Javascript/Jquery——简单定时器的多种实现方法
- javascript实现yield的方法
- javascript实现复制与粘贴操作实例
- Javascript+CSS实现影像卷帘效果思路及代码
- javascript简单实现图片预加载
- JavaScript使用setInterval()函数实现简单轮询操作的方法