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检测flash插件是否被禁用的方法
Jan 14 Javascript
jQuery中选择器的基础使用教程
May 23 Javascript
15位和18位身份证JS校验的简单实例
Jul 18 Javascript
原生js实现淘宝购物车功能
Jun 23 Javascript
jquery.cookie.js的介绍与使用方法
Feb 09 Javascript
HTML的select控件美化
Mar 27 Javascript
JS获取字符对应的ASCII码实例
Sep 10 Javascript
angular json对象push到数组中的方法
Feb 27 Javascript
vue实现验证码按钮倒计时功能
Apr 10 Javascript
解决vue中post方式提交数据后台无法接收的问题
Aug 11 Javascript
layui 监听表格复选框选中值的方法
Aug 15 Javascript
4个顶级开源JavaScript图表库
Sep 29 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
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
2012/03/26 PHP
基于PHP常用字符串的总结(待续)
2013/06/07 PHP
php实现与erlang的二进制通讯实例解析
2014/07/23 PHP
DEDECMS首页调用图片集里的多张图片
2015/06/05 PHP
PHP面向对象详解(三)
2015/12/07 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
laravel5 Eloquent 实现事务方式
2019/10/21 PHP
JSON 学习之完全手册 图文
2007/05/29 Javascript
建议大家看下JavaScript重要知识更新
2007/07/08 Javascript
基于jquery的分页控件(C#)
2011/01/06 Javascript
JQuery+JS实现仿百度搜索结果中关键字变色效果
2011/08/02 Javascript
display和visibility的区别示例介绍
2014/02/26 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
2014/03/27 Javascript
学习JavaScript编程语言的8张思维导图分享
2015/03/27 Javascript
prototype.js常用函数详解
2016/06/18 Javascript
Google 地图事件实例讲解
2016/08/06 Javascript
Seajs是什么及sea.js 由来,特点以及优势
2016/10/13 Javascript
浅谈Javascript事件对象
2017/02/05 Javascript
vue数据控制视图源码解析
2018/03/28 Javascript
JavaScript ES2019中的8个新特性详解
2019/02/20 Javascript
解决vue2中使用elementUi打包报错的问题
2020/09/22 Javascript
[05:00]TI9战队采访 - Royal Never Give Up
2019/08/20 DOTA
Python的字典和列表的使用中一些需要注意的地方
2015/04/24 Python
Java多线程编程中ThreadLocal类的用法及深入
2016/06/21 Python
详解python OpenCV学习笔记之直方图均衡化
2018/02/08 Python
Django框架反向解析操作详解
2019/11/28 Python
python 等差数列末项计算方式
2020/05/03 Python
Python 虚拟环境工作原理解析
2020/12/24 Python
预订从美国飞往印度的机票:MyTicketsToIndia
2017/05/19 全球购物
Under Armour安德玛英国官网:美国高端运动科技品牌
2018/09/17 全球购物
慕尼黑山地运动、户外服装和体育用品专家:Sporthaus Schuster
2019/08/27 全球购物
幼儿园秋游活动方案
2014/01/21 职场文书
应届毕业生应聘自荐信范文
2014/02/26 职场文书
小学班级特色活动方案
2014/08/31 职场文书
《世界多美呀》教学反思
2016/02/22 职场文书
Mysql忘记密码解决方法
2022/02/12 MySQL