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 相关文章推荐
用js实现上传图片前的预览(TX的面试题)
Aug 14 Javascript
JSQL 基于客户端的成绩统计实现方法
May 05 Javascript
javascript中数组中求最大值示例代码
Dec 18 Javascript
javascript/jquery获取地址栏url参数的方法
Mar 05 Javascript
PHP开发者必须掌握的6个关键字
Apr 14 Javascript
JS验证 只能输入小数点,数字,负数的实现方法
Oct 07 Javascript
JavaScript实现QQ列表展开收缩扩展功能
Oct 30 Javascript
vscode中vue-cli项目es-lint的配置方法
Jul 30 Javascript
Windows下支持自动更新的Electron应用脚手架的方法
Dec 24 Javascript
解决使用layui的时候form表单中的select等不能渲染的问题
Sep 18 Javascript
深入探索VueJS Scoped CSS 实现原理
Sep 23 Javascript
JavaScript最完整的深浅拷贝实现方式详解
Feb 28 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
source.php查看源文件
2006/12/09 PHP
php通过字符串调用函数示例
2014/03/02 PHP
PHP网站开发中常用的8个小技巧
2015/02/13 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
JavaScript Event学习第三章 早期的事件处理程序
2010/02/07 Javascript
get(0).tagName获得作用标签示例代码
2014/10/08 Javascript
js 声明数组和向数组中添加对象变量的简单实例
2016/07/28 Javascript
require、backbone等重构手机图片查看器
2016/11/17 Javascript
快速掌握jQuery插件开发
2017/01/19 Javascript
Angularjs实现数组随机排序的方法
2018/10/02 Javascript
详解基于Vue/React项目的移动端适配方案
2019/08/23 Javascript
react native 仿微信聊天室实例代码
2019/09/17 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
vue-cli打包后本地运行dist文件中的index.html操作
2020/08/12 Javascript
微信小程序实现日历小功能
2020/11/18 Javascript
vue中如何自定义右键菜单详解
2020/12/08 Vue.js
[51:00]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python学习基础之循环import及import过程
2018/04/22 Python
浅谈python之高阶函数和匿名函数
2019/03/21 Python
python中Mako库实例用法
2020/12/31 Python
英国HYPE双肩包官网:英国本土时尚潮牌
2018/09/26 全球购物
Yankee Candle官网:美国最畅销蜡烛品牌之一
2020/01/05 全球购物
开放系统互连参考模型
2016/06/29 面试题
什么叫做SQL注入,如何防止
2016/10/04 面试题
竟聘演讲稿范文
2013/12/31 职场文书
岗位聘任书范文
2014/03/29 职场文书
班级学习雷锋活动总结
2014/07/04 职场文书
亲子阅读的活动方案
2014/08/15 职场文书
民政局标准版离婚协议书
2014/12/01 职场文书
2014矛盾纠纷排查调处工作总结
2014/12/09 职场文书
亮剑观后感
2015/06/05 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
【海涛dota】偶遇拉娜娅 质量局德鲁伊第一视角解说
2022/04/01 DOTA
java版 简单三子棋游戏
2022/05/04 Java/Android
Python实现数据的序列化操作详解
2022/07/07 Python