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格式化数字的函数代码
Nov 30 Javascript
DWZ table的原生分页浅谈
Mar 01 Javascript
jQuery 仿百度输入标签插件附效果图
Jul 04 Javascript
利用jQuery.Validate异步验证用户名是否存在(推荐)
Dec 09 Javascript
浅析vue数据绑定
Jan 17 Javascript
js遮罩效果制作弹出注册界面效果
Jan 25 Javascript
js 博客内容进度插件详解
Feb 19 Javascript
jQuery遮罩层实例讲解
May 11 jQuery
jquery append与appendTo方法比较
May 24 jQuery
ionic环境配置及问题详解
Jun 27 Javascript
vue v-model动态生成详解
Jun 30 Javascript
JS前端轻量fabric.js系列之画布初始化
Aug 05 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实现的遍历文件夹下所有文件,编辑删除
2010/01/05 PHP
php实现RSA加密类实例
2015/03/26 PHP
PHP封装的字符串加密解密函数
2015/12/18 PHP
PHP连接数据库实现注册页面的增删改查操作
2016/03/27 PHP
PHP Laravel中的Trait使用方法
2019/01/20 PHP
用javascript父窗口控制只弹出一个子窗口
2007/04/10 Javascript
关于query Javascript CSS Selector engine
2013/04/12 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
利用javascript实现全部删或清空所选的操作
2014/05/27 Javascript
node.js中的http.createClient方法使用说明
2014/12/15 Javascript
实现无刷新联动例子汇总
2015/05/20 Javascript
JSON相关知识汇总
2015/07/03 Javascript
基于JavaScript实现手机短信按钮倒计时(超简单)
2015/12/30 Javascript
Jquery实现$.fn.extend和$.extend函数
2016/04/14 Javascript
jQuery自定义数值抽奖活动代码
2016/06/11 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
2016/08/24 Javascript
浅谈JSON.stringify()和JOSN.parse()方法的不同
2016/08/29 Javascript
js仿拉勾网首页穿墙广告效果
2017/03/08 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
2017/09/03 jQuery
微信小程序之选项卡的实现方法
2017/09/29 Javascript
使用Vue做一个简单的todo应用的三种方式的示例代码
2018/10/20 Javascript
JS中使用new Option()实现时间联动效果
2018/12/10 Javascript
vue input标签通用指令校验的实现
2019/11/05 Javascript
vue-cli3使用mock数据的方法分析
2020/03/16 Javascript
简单介绍Python中的decode()方法的使用
2015/05/18 Python
Pthon批量处理将pdb文件生成dssp文件
2015/06/21 Python
Python常见数字运算操作实例小结
2019/03/22 Python
CSS3 transform的skew属性值图文详解
2014/07/21 HTML / CSS
美国50岁以上单身人士约会平台:SilverSingles
2018/06/29 全球购物
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
伊莱克斯(Electrolux)俄罗斯网上商店:瑞典家用电器品牌
2021/01/23 全球购物
工程部经理岗位职责
2013/12/08 职场文书
文明家庭事迹材料
2014/12/20 职场文书
十佳少年事迹材料
2014/12/25 职场文书
Win11绿屏怎么办?Win11绿屏死机的解决方法
2021/11/21 数码科技
详解Mysql数据库平滑扩容解决高并发和大数据量问题
2022/05/25 MySQL