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 相关文章推荐
使用jQuery validate 验证注册表单实例演示
Mar 25 Javascript
js固定DIV高度,超出部分自动添加滚动条的简单方法
Jul 10 Javascript
深入理解JQuery keyUp和keyDown的区别
Dec 12 Javascript
jQuery实现图片左右滚动特效
Apr 20 Javascript
JavaScript中校验银行卡号的实现代码
Dec 19 Javascript
js模糊查询实例分享
Dec 26 Javascript
bootstrap3中container与container_fluid外层容器的区别讲解
Dec 04 Javascript
Angular中使用better-scroll插件的方法
Mar 27 Javascript
解决修复npm安装全局模块权限的问题
May 17 Javascript
详解javascript中的Error对象
Apr 25 Javascript
vue 子组件和父组件传值的示例
Sep 11 Javascript
JS setTimeout与setInterval的区别
Apr 20 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
24条货真价实的PHP代码优化技巧
2016/07/28 PHP
thinkphp5框架扩展redis类方法示例
2019/05/06 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
再说AutoComplete自动补全之实现原理
2011/11/05 Javascript
jquery 操作DOM的基本用法分享
2012/04/05 Javascript
jQuery图片播放8款精美插件分享
2013/02/17 Javascript
javascript中attribute和property的区别详解
2014/06/05 Javascript
jquery操作checkbox示例分享
2014/07/21 Javascript
NodeJS使用jQuery选择器操作DOM
2015/02/13 NodeJs
EasyUI实现二级页面的内容勾选的方法
2015/03/01 Javascript
JavaScript判断一个字符串是否包含指定子字符串的方法
2015/03/18 Javascript
JS基于Ajax实现的网页Loading效果代码
2015/10/27 Javascript
Bootstrap轮播插件使用代码
2016/10/11 Javascript
浅析vue数据绑定
2017/01/17 Javascript
基于Node.js模板引擎教程-jade速学与实战1
2017/09/17 Javascript
微信小程序出现wx.navigateTo页面不跳转问题的解决方法
2017/12/26 Javascript
nodejs检测因特网是否断开的解决方案
2019/04/17 NodeJs
微信小程序rich-text富文本用法实例分析
2019/05/20 Javascript
JS如何生成随机验证码
2020/03/02 Javascript
Python中os和shutil模块实用方法集锦
2014/05/13 Python
python 实现对文件夹内的文件排序编号
2018/04/12 Python
PyCharm代码整体缩进,反向缩进的方法
2018/06/25 Python
python基于C/S模式实现聊天室功能
2019/01/09 Python
python执行精确的小数计算方法
2019/01/21 Python
python实现Virginia无密钥解密
2019/03/20 Python
python3中eval函数用法使用简介
2019/08/02 Python
纯CSS实现菜单、导航栏的3D翻转动画效果
2014/04/23 HTML / CSS
KLOOK客路:发现更好玩的世界,预订独一无二的旅行体验
2016/12/16 全球购物
机械专业毕业生自荐信
2013/11/02 职场文书
新年抽奖获奖感言
2014/03/02 职场文书
食品业务员岗位职责
2014/03/18 职场文书
运动会方队口号
2014/06/07 职场文书
五年级学生评语大全
2014/12/26 职场文书
债务纠纷起诉书
2015/05/20 职场文书
参加招聘会后的感想
2015/08/10 职场文书
遇事可以测出您的见识与格局
2019/09/16 职场文书