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 节点遍历函数
Mar 28 Javascript
js清空表单数据的两种方式(遍历+reset)
Jul 18 Javascript
详解JavaScript ES6中的模板字符串
Jul 28 Javascript
jQuery结合CSS制作动态的下拉菜单
Oct 27 Javascript
javascript弹出窗口实现代码
Nov 12 Javascript
Vue.js每天必学之表单控件绑定
Sep 05 Javascript
javascript对浅拷贝和深拷贝的详解
Oct 14 Javascript
Angular4实现鼠标悬停3d倾斜效果
Oct 25 Javascript
vue 循环加载数据并获取第一条记录的方法
Sep 26 Javascript
JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】
Jul 11 jQuery
Js Snowflake(雪花算法)生成随机ID的实现方法
Aug 26 Javascript
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
Jun 09 Vue.js
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
五款常用mysql slow log分析工具的比较分析
2011/05/22 PHP
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
2015/03/03 PHP
php调用自己java程序的方法详解
2016/05/13 PHP
Yii2中如何使用modal弹窗(基本使用)
2016/05/30 PHP
PHP将页面中点击数量高的链接进行高亮显示的方法
2016/05/30 PHP
PHP实现腾讯与百度坐标转换
2017/08/05 PHP
JS window.opener返回父页面的应用
2009/10/24 Javascript
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
JS随机生成不重复数据的实例方法
2013/07/17 Javascript
利用jQuery中的ajax分页实现代码
2016/02/25 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
基于JavaScript FileReader上传图片显示本地链接
2016/05/27 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
vue打包npm run build时候界面报错的解决
2020/08/13 Javascript
[02:12]DOTA2英雄基础教程 变体精灵
2013/12/16 DOTA
[26:24]完美副总裁、DOTA2负责人蔡玮专访:电竞如人生
2014/09/11 DOTA
详解常用查找数据结构及算法(Python实现)
2016/12/09 Python
Python上下文管理器和with块详解
2017/09/09 Python
python学生管理系统
2019/01/30 Python
在 Python 中接管键盘中断信号的实现方法
2020/02/04 Python
python连接打印机实现打印文档、图片、pdf文件等功能
2020/02/07 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
2020/12/01 Python
pandas 按日期范围筛选数据的实现
2021/02/20 Python
Matlab使用Plot函数实现数据动态显示方法总结
2021/02/25 Python
Laura Mercier官网:彩妆大师罗拉玛斯亚的化妆品牌
2018/01/04 全球购物
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
医学毕业生自荐信
2013/10/11 职场文书
护理专业个人求职简历的自我评价
2013/10/13 职场文书
简单的辞职信范文
2014/01/18 职场文书
毕业生就业协议书
2014/04/11 职场文书
市政管理求职信范文
2014/05/07 职场文书
史学专业毕业生求职信
2014/05/09 职场文书
铣床操作工岗位职责
2014/06/13 职场文书
2014审计局领导班子民主生活会对照检查材料思想汇报
2014/09/20 职场文书
结婚当天新郎保证书
2015/05/08 职场文书
创业计划书之溜冰场
2019/10/25 职场文书