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中String类的subString()方法和slice()方法
May 24 Javascript
window.event快达到全浏览器支持了,以后使用就方便了
Nov 30 Javascript
JS动态改变浏览器标题的方法
Apr 06 Javascript
最棒的Angular2表格控件
Aug 10 Javascript
扩展Bootstrap Tooltip插件使其可交互的方法
Nov 07 Javascript
详解angular中如何监控dom渲染完毕
Jan 03 Javascript
vue router demo详解
Oct 13 Javascript
教你用Cordova打包Vue项目的方法
Oct 17 Javascript
vue中v-for加载本地静态图片方法
Mar 03 Javascript
JavaScript如何借用构造函数继承
Nov 06 Javascript
vue 计算属性和侦听器的使用小结
Jan 25 Vue.js
Handtrack.js库实现实时监测手部运动(推荐)
Feb 08 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
德生S2000电路分析
2021/03/02 无线电
PHP实现定时生成HTML网站首页实例代码
2008/11/20 PHP
php var_export与var_dump 输出的不同
2013/08/09 PHP
ThinkPHP基本的增删查改操作实例教程
2014/08/22 PHP
py文件转exe时包含paramiko模块出错解决方法
2016/08/12 PHP
javascript div 弹出可拖动窗口
2009/02/26 Javascript
基于jQuery的计算文本框字数的代码
2012/06/06 Javascript
jquery ready(fn)事件使用介绍
2013/08/21 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
jQuery实现仿百度首页滑动伸缩展开的添加服务效果代码
2015/09/09 Javascript
基于JavaScript实现轮播图代码
2016/07/14 Javascript
微信公众号开发 实现点击返回按钮就返回到聊天界面
2016/12/15 Javascript
原生js实现日期计算器功能
2017/02/17 Javascript
详解axios在vue中的简单配置与使用
2017/05/10 Javascript
vue-cli项目使用mock数据的方法(借助express)
2019/04/15 Javascript
package.json配置文件构成详解
2019/08/27 Javascript
微信小程序仿淘宝热搜词在搜索框中轮播功能
2020/01/21 Javascript
详解vue-flickity的fullScreen功能实现
2020/04/07 Javascript
vue实现把接口单独存放在一个文件方式
2020/08/13 Javascript
Python Web服务器Tornado使用小结
2014/05/06 Python
Python学习小技巧之利用字典的默认行为
2017/05/20 Python
Python中new方法的详解
2019/01/15 Python
python简单贪吃蛇开发
2019/01/28 Python
图解python全局变量与局部变量相关知识
2019/11/02 Python
利用pandas将非数值数据转换成数值的方式
2019/12/18 Python
CSS3 Media Queries(响应式布局可以让你定制不同的分辨率和设备)
2013/06/06 HTML / CSS
基本款天堂:Everlane
2017/05/13 全球购物
WoolOvers澳洲官方网站:英国针织服装公司
2018/05/13 全球购物
马来西亚领先的在线礼品店:Giftr
2018/08/23 全球购物
I.T集团香港官方商城:ITeSHOP.com Hong Kong
2019/02/15 全球购物
对于没有初始化的变量的初始值可以作怎样的假定
2014/10/12 面试题
临床医学专业毕业生的自我评价
2013/10/17 职场文书
调查研究项目计划书
2014/04/29 职场文书
三分钟自我介绍演讲稿
2014/08/21 职场文书
新课程改革心得体会
2016/01/22 职场文书
DIV CSS实现网页背景半透明效果
2021/12/06 HTML / CSS