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 02 Javascript
JQuery优缺点分析说明
Jun 09 Javascript
js中settimeout方法加参数
Feb 28 Javascript
js跨域访问示例(客户端/服务端)
May 19 Javascript
Flow之一个新的Javascript静态类型检查器
Dec 21 Javascript
浅析JavaScript中作用域和作用域链
Dec 06 Javascript
详谈innerHTML innerText的使用和区别
Aug 18 Javascript
vue 简单自动补全的输入框的示例
Mar 12 Javascript
vue 源码解析之虚拟Dom-render
Aug 26 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
Nov 24 Javascript
JavaScript对象原型链原理详解
Feb 05 Javascript
jQuery带控制按钮轮播图插件
Jul 31 jQuery
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 Header失效的原因分析及解决方法
2016/11/16 PHP
PHP Laravel 上传图片、文件等类封装
2017/08/16 PHP
你需要知道的10个最佳javascript开发实践小结
2012/04/15 Javascript
NodeJS与Mysql的交互示例代码
2013/08/18 NodeJs
Jqgrid设置全选(选择)及获取选择行的值示例代码
2013/12/28 Javascript
javascript初学者常用技巧
2014/09/02 Javascript
javascript实现控制文字大中小显示
2015/04/28 Javascript
js光标定位文本框回车表单提交问题的解决方法
2015/05/11 Javascript
jQuery+CSS实现一个侧滑导航菜单代码
2016/05/09 Javascript
Node.js中路径处理模块path详解
2016/11/14 Javascript
函数四种调用模式以及其中的this指向
2017/01/16 Javascript
微信小程序 Nginx环境配置详细介绍
2017/02/14 Javascript
javascript Function函数理解与实战
2017/12/01 Javascript
vue学习教程之带你一步步详细解析vue-cli
2017/12/26 Javascript
简单了解Ajax表单序列化的实现方法
2019/06/14 Javascript
[04:53]DOTA2英雄基础教程 祈求者
2014/01/03 DOTA
[47:42]完美世界DOTA2联赛PWL S2 GXR vs Ink 第一场 11.19
2020/11/20 DOTA
仅用50行Python代码实现一个简单的代理服务器
2015/04/08 Python
使用Python脚本和ADB命令实现卸载App
2017/02/10 Python
python数字图像处理之骨架提取与分水岭算法
2018/04/27 Python
Python系统监控模块psutil功能与经典用法分析
2018/05/24 Python
Python全排列操作实例分析
2018/07/24 Python
总结Python图形用户界面和游戏开发知识点
2019/05/22 Python
如何使用Python标准库进行性能测试
2019/06/25 Python
django自带调试服务器的使用详解
2019/08/29 Python
python实现低通滤波器代码
2020/02/26 Python
Python爬虫入门有哪些基础知识点
2020/06/02 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
python实现计算图形面积
2021/02/22 Python
canvas绘制视频封面的方法
2018/02/05 HTML / CSS
《菜园里》教学反思
2014/04/17 职场文书
美丽家庭事迹材料
2014/05/03 职场文书
学生安全责任书模板
2014/07/25 职场文书
离婚协议书范本样本
2014/08/19 职场文书
Golang并发操作中常见的读写锁详析
2021/08/30 Golang
RestTemplate如何通过HTTP Basic Auth认证示例说明
2022/03/17 Java/Android