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 相关文章推荐
Javascript实现的分页函数
Feb 07 Javascript
WordPress JQuery处理沙发头像
Jun 22 Javascript
js 弹出菜单/窗口效果
Oct 30 Javascript
js判断字符长度及中英文数字等
Mar 19 Javascript
JavaScript中document.forms[0]与getElementByName区别
Jan 21 Javascript
jQuery实现的倒计时效果实例小结
Apr 16 Javascript
详解JavaScript常量定义
Jan 03 Javascript
微信小程序学习笔记之跳转页面、传递参数获得数据操作图文详解
Mar 28 Javascript
小程序云开发教程如何使用云函数实现点赞功能
May 18 Javascript
vue中input的v-model清空操作
Sep 06 Javascript
vue实现列表拖拽排序的功能
Nov 02 Javascript
解决js中的setInterval清空定时器不管用问题
Nov 17 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学习笔记之一
2011/01/17 PHP
php注册审核重点解析(数据访问)
2017/05/23 PHP
laravel 5异常错误:FatalErrorException in Handler.php line 38的解决
2017/10/12 PHP
tp5(thinkPHP5)操作mongoDB数据库的方法
2018/01/20 PHP
php字符串截取函数mb_substr用法实例分析
2019/06/25 PHP
ThinkPHP5分页paginate代码实例解析
2020/11/10 PHP
jquery 鼠标滑动显示详情应用示例
2014/01/24 Javascript
js 金额格式化来回转换示例
2014/02/23 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
2015/09/24 Javascript
在JavaScript中模拟类(class)及类的继承关系
2016/05/20 Javascript
原生JS实现-星级评分系统的简单实例
2016/08/21 Javascript
jQuery之动画效果大全
2016/11/09 Javascript
JavaScript使用简单正则表达式的数据验证功能示例
2017/01/13 Javascript
基于react后端渲染模板引擎noox发布使用
2018/01/11 Javascript
webuploader实现上传图片到服务器功能
2018/08/16 Javascript
微信小程序实现语音识别转文字功能及遇到的坑
2019/08/02 Javascript
[04:45]DOTA2-DPC中国联赛正赛 iG vs LBZS 赛后选手采访
2021/03/11 DOTA
python使用reportlab画图示例(含中文汉字)
2013/12/03 Python
Python3之简单搭建自带服务器的实例讲解
2018/06/04 Python
详解python读取image
2019/04/03 Python
pyqt实现.ui文件批量转换为对应.py文件脚本
2019/06/19 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
2019/08/13 Python
Python 支持向量机分类器的实现
2020/01/15 Python
Python生成随机验证码代码实例解析
2020/06/09 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
2020/11/17 Python
Window10上Tensorflow的安装(CPU和GPU版本)
2020/12/15 Python
Python 实现二叉查找树的示例代码
2020/12/21 Python
使用phonegap检测网络状态的方法
2017/03/30 HTML / CSS
HTML5 通信API 跨域门槛将不再高、数据推送也不再是梦
2013/04/25 HTML / CSS
党员个人整改措施
2014/10/24 职场文书
寒山寺导游词
2015/02/03 职场文书
行政复议决定书
2015/06/24 职场文书
合理缓解职场压力,让你随时保持最佳状态!
2019/06/21 职场文书
MySQL官方导出工具mysqlpump的使用
2021/05/21 MySQL
【海涛教你打DOTA】黑鸟第一视角解说
2022/04/01 DOTA
JavaScript声明变量和数据类型的转换
2022/04/12 Javascript