javascript模拟命名空间


Posted in Javascript onApril 17, 2015

在 C++ 和 C# 中,命名空间用于尽可能地减少名称冲突。例如,在 .NET Framework 中,命名空间有助于将 Microsoft.Build.Task.Message 类与 System.Messaging.Message 区分开来。JavaScript 没有任何特定语言功能来支持命名空间,但很容易使用对象来模拟命名空间。如果要创建一个 JavaScript 库,则可以将它们包装在命名空间内,而不需要定义全局函数和类,如下所示:

var MSDNMagNS = {};
MSDNMagNS.Pet = function(name) { // code here };
MSDNMagNS.Pet.prototype.toString = function() { // code };
var pet = new MSDNMagNS.Pet(“Yammer”);

命名空间的一个级别可能不是唯一的,因此可以创建嵌套的命名空间:

var MSDNMagNS = {};
// nested namespace “Examples”
MSDNMagNS.Examples = {};
MSDNMagNS.Examples.Pet = function(name) { // code };
MSDNMagNS.Examples.Pet.prototype.toString = function() { // code };
var pet = new MSDNMagNS.Examples.Pet(“Yammer”);

可以想象,键入这些冗长的嵌套命名空间会让人很累。 幸运的是,库用户可以很容易地为命名空间指定更短的别名:

// MSDNMagNS.Examples and Pet definition...
// think “using Eg = MSDNMagNS.Examples;”
var Eg = MSDNMagNS.Examples;
var pet = new Eg.Pet(“Yammer”);
alert(pet);

如果看一下 Microsoft AJAX 库的源代码,就会发现库的作者使用了类似的技术来实现命名空间,这里就不做详细说明了,有需要的小伙伴自己去度娘找吧。

以上就是本文的全部内容了,希望对大家学习javascript能够有所帮助

Javascript 相关文章推荐
filemanage功能中用到的lib.js
Apr 08 Javascript
Javascript 文件夹选择框的两种解决方案
Jul 01 Javascript
Javascript 继承机制的实现
Aug 12 Javascript
javascript 面向对象 function类
May 13 Javascript
JQury slideToggle闪烁问题及解决办法
Jul 05 Javascript
javascript 判断整数方法分享
Dec 16 Javascript
JS中动态创建元素的三种方法总结(推荐)
Oct 20 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
Nov 23 Javascript
canvas实现动态小球重叠效果
Feb 06 Javascript
vue组件jsx语法的具体使用
May 21 Javascript
基于JS正则表达式实现模板数据动态渲染(实现思路详解)
Mar 07 Javascript
NestJs使用Mongoose对MongoDB操作的方法
Feb 22 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
Apr 17 #Javascript
完美兼容多浏览器的js判断图片路径代码汇总
Apr 17 #Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
Apr 17 #Javascript
原生js实现移动开发轮播图、相册滑动特效
Apr 17 #Javascript
JavaScript实现简单图片翻转的方法
Apr 17 #Javascript
JavaScript实现将xml转换成html table表格的方法
Apr 17 #Javascript
JavaScript实现的简单幂函数实例
Apr 17 #Javascript
You might like
PHP_Cooikes不同页面无法传递的解决方法
2014/03/07 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
2015/02/07 PHP
php使用Jpgraph绘制饼状图的方法
2015/06/10 PHP
PHP结合Jquery和ajax实现瀑布流特效
2016/01/07 PHP
php函数传值的引用传递注意事项分析
2016/06/25 PHP
JS模拟多线程
2007/02/07 Javascript
Add a Table to a Word Document
2007/06/15 Javascript
JavaScript/jQuery 表单美化插件小结
2012/02/14 Javascript
关于innerHTML后丢失动态绑定的EVENT问题解决方法
2013/05/19 Javascript
JQuery使用index方法获取Jquery对象数组下标的方法
2015/05/18 Javascript
跟我学习javascript的循环
2015/11/18 Javascript
解决JS无法调用Controller问题的方法
2015/12/31 Javascript
javascript实现简单计算器效果【推荐】
2016/04/19 Javascript
vue按需引入element Transfer 穿梭框
2017/09/30 Javascript
JavaScript实现QQ列表展开收缩扩展功能
2017/10/30 Javascript
微信小程序使用image组件显示图片的方法【附源码下载】
2017/12/08 Javascript
js实现控制文件拖拽并获取拖拽内容功能
2018/02/17 Javascript
uni-app实现点赞评论功能
2019/11/25 Javascript
Python+django实现文件上传
2016/01/17 Python
Python使用dis模块把Python反编译为字节码的用法详解
2016/06/14 Python
PyQt实现界面翻转切换效果
2018/04/20 Python
dataframe 按条件替换某一列中的值方法
2019/01/29 Python
Python登录系统界面实现详解
2019/06/25 Python
PyQt5实现暗黑风格的计时器
2019/07/29 Python
HTML5 Canvas实现文本对齐的方法总结
2016/03/24 HTML / CSS
法国最大电子商务平台:Cdiscount
2018/03/13 全球购物
英国Office鞋店德国网站:在线购买鞋子、靴子和运动鞋
2018/12/19 全球购物
函授本科毕业自我鉴定
2013/10/09 职场文书
小学生元旦感言
2014/02/26 职场文书
过程装备与控制工程专业求职信
2014/07/02 职场文书
三方协议书
2015/01/27 职场文书
消防演习通知
2015/04/25 职场文书
关于车尾的标语大全
2015/08/11 职场文书
Nest.js参数校验和自定义返回数据格式详解
2021/03/29 Javascript
vue-cli4.5.x快速搭建项目
2021/05/30 Vue.js
启动Tomcat时出现大量乱码的解决方法
2021/06/21 Java/Android