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 编程引入命名空间的方法与代码
Aug 13 Javascript
浅析js封装和作用域
Jul 09 Javascript
Javascript基础 函数“重载” 详细介绍
Oct 25 Javascript
js实现无限级树形导航列表效果代码
Sep 23 Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
Jan 22 Javascript
Bootstrap编写一个同时适用于PC、平板、手机的登陆页面
Jun 30 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
Aug 28 jQuery
vue 地图可视化 maptalks 篇实例代码详解
May 21 Javascript
vue+Element实现搜索关键字高亮功能
May 28 Javascript
layui复选框的全选与取消实现方法
Sep 02 Javascript
JS实现吸顶特效
Jan 08 Javascript
vue实现一个矩形标记区域(rectangle marker)的方法
Oct 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
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
2011/11/10 PHP
让CodeIgniter的ellipsize()支持中文截断的方法
2014/06/12 PHP
浅谈php中curl、fsockopen的应用
2016/12/10 PHP
tp5框架使用composer实现日志记录功能示例
2019/01/10 PHP
php中访问修饰符的知识点总结
2019/01/27 PHP
掌握PHP垃圾回收机制详解
2019/03/13 PHP
javascript 关闭IE6、IE7
2009/06/01 Javascript
JavaScript Event学习第九章 鼠标事件
2010/02/08 Javascript
Jquery中getJSON在asp.net中的使用说明
2011/03/10 Javascript
如何解决Jquery库及其他库之间的$命名冲突
2013/09/15 Javascript
javascript对JSON数据排序的3个例子
2014/04/12 Javascript
上传图片js判断图片尺寸和格式兼容IE
2014/09/01 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
2015/09/06 Javascript
js select实现省市区联动选择
2020/04/17 Javascript
页面间固定参数,通过cookie传值的实现方法
2017/05/31 Javascript
详解vue2 $watch要注意的问题
2017/09/08 Javascript
基于Vuex无法观察到值变化的解决方法
2018/03/01 Javascript
vue.js中npm安装教程图解
2018/04/10 Javascript
node和vue实现商城用户地址模块
2018/12/05 Javascript
python基于urllib实现按照百度音乐分类下载mp3的方法
2015/05/25 Python
使用Py2Exe for Python3创建自己的exe程序示例
2018/10/31 Python
Django如何开发简单的查询接口详解
2019/05/17 Python
jupyter notebook 中输出pyecharts图实例
2020/04/23 Python
Pandas之Fillna填充缺失数据的方法
2019/06/25 Python
Flask框架学习笔记之消息提示与异常处理操作详解
2019/08/15 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
Pytorch中.new()的作用详解
2020/02/18 Python
python 实现仿微信聊天时间格式化显示的代码
2020/04/17 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
2020/06/30 Python
印度购物网站:TATA CLiQ
2017/11/23 全球购物
什么是GWT的Module
2013/01/20 面试题
个人委托函范文
2015/01/29 职场文书
党员转正申请报告
2015/05/15 职场文书
用Python简陋模拟n阶魔方
2021/04/17 Python
vue首次渲染全过程
2021/04/21 Vue.js
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android