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插件开发 菜单插件开发
May 03 Javascript
上传的js验证(图片/文件的扩展名)
Apr 25 Javascript
JavaScript中的Math.sin()方法使用详解
Jun 15 Javascript
详解webpack进阶之插件篇
Jul 06 Javascript
Vue学习笔记进阶篇之多元素及多组件过渡
Jul 19 Javascript
JS实现带导航城市列表以及输入搜索功能
Jan 04 Javascript
angular基于ng-alain定义自己的select组件示例
Feb 23 Javascript
简谈创建React Component的几种方式
Jun 15 Javascript
快速对接payjq的个人微信支付接口过程解析
Aug 15 Javascript
jQuery设置下拉框显示与隐藏效果的方法分析
Sep 15 jQuery
Node 模块原理与用法详解
May 13 Javascript
three.js如何实现3D动态文字效果
Mar 03 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一些常用的正则表达式字符的一些转换
2008/07/29 PHP
php实现简单文件下载的方法
2015/01/30 PHP
使用新浪微博API的OAuth认证发布微博实例
2015/03/27 PHP
深入理解php printf() 输出格式化的字符串
2016/05/23 PHP
StringTemplate遇见jQuery冲突的解决方法
2011/09/22 Javascript
深入理解JavaScript高级之词法作用域和作用域链
2013/12/10 Javascript
jQuery.parseJSON(json)将JSON字符串转换成js对象
2014/07/27 Javascript
javascript实现获取图片大小及图片等比缩放的方法
2016/11/24 Javascript
微信小程序之滚动视图容器的实现方法
2017/09/26 Javascript
webpack学习教程之前端性能优化总结
2017/12/05 Javascript
基于react后端渲染模板引擎noox发布使用
2018/01/11 Javascript
JS封装的模仿qq右下角消息弹窗功能示例
2018/08/22 Javascript
React Hooks的深入理解与使用
2018/11/12 Javascript
vue实现带复选框的树形菜单
2019/05/27 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
2020/03/31 Javascript
[54:09]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
python中stdout输出不缓存的设置方法
2014/05/29 Python
Python入门篇之条件、循环
2014/10/17 Python
Python 常用的安装Module方式汇总
2017/05/06 Python
Python处理中文标点符号大集合
2018/05/14 Python
对Python之gzip文件读写的方法详解
2019/02/08 Python
Python实现查找字符串数组最长公共前缀示例
2019/03/27 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
2019/06/18 Python
python实现图片转换成素描和漫画格式
2020/08/19 Python
HTML5 Web存储方式的localStorage和sessionStorage进行数据本地存储案例应用
2012/12/09 HTML / CSS
美国花布包包品牌:Vera Bradley
2017/08/11 全球购物
美国在线眼镜店:GlassesShop
2018/11/15 全球购物
社团活动策划书范文
2014/01/09 职场文书
员工培训邀请函
2014/02/02 职场文书
国贸专业求职信
2014/06/28 职场文书
班级活动总结格式
2014/08/30 职场文书
2014国庆65周年领导讲话稿(3篇)
2014/09/21 职场文书
党的群众路线教育实践活动整改落实情况报告
2014/10/28 职场文书
旷工辞退通知书
2015/04/17 职场文书
Pytest中conftest.py的用法
2021/06/27 Python
python实现简易自习室座位预约系统
2021/06/30 Python