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 相关文章推荐
[原创]来自ImageSee官方 JavaScript图片浏览器
Jan 16 Javascript
JS获取键盘上任意按键的值(实例代码)
Nov 12 Javascript
js使用栈来实现10进制转8进制与取除数及余数
Jun 11 Javascript
AngularJS学习笔记之ng-options指令
Jun 16 Javascript
原生JavaScript实现瀑布流布局
Jun 28 Javascript
个人网站留言页面(前端jQuery编写、后台php读写MySQL)
May 03 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
Mar 03 Javascript
js禁止浏览器的回退事件
Apr 20 Javascript
详解vue-cli快速构建vue应用并实现webpack打包
Dec 13 Javascript
基于Vue+Webpack拆分路由文件实现管理
Nov 16 Javascript
了不起的11个JavaScript代码重构最佳实践小结
Jan 11 Javascript
JavaScript原型链详解
Nov 07 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之生成GIF动画的实现方法
2013/06/07 PHP
PHP的一个完美GIF等比缩放类,附带去除缩放黑背景
2014/04/01 PHP
删除html标签得到纯文本可处理嵌套的标签
2014/04/28 PHP
国产PHP开发框架myqee新手快速入门教程
2014/07/14 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
2014/12/25 PHP
php判断数组中是否存在指定键(key)的方法
2015/03/17 PHP
详解php比较操作符的安全问题
2015/12/03 PHP
在PHP语言中使用JSON和将json还原成数组的方法
2016/07/19 PHP
php安装ssh2扩展的方法【Linux平台】
2016/07/20 PHP
PHP编程实现csv文件导入mysql数据库的方法
2017/04/29 PHP
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
多个$(document).ready()的执行顺序实例分析
2014/07/26 Javascript
jQuery中$.each使用详解
2015/01/29 Javascript
深入理解JS函数的参数(arguments)的使用
2016/05/28 Javascript
Javascript实现图片懒加载插件的方法
2016/10/20 Javascript
JavaScript微信定位功能实现方法
2016/11/29 Javascript
使用ionic切换页面卡顿的解决方法
2016/12/16 Javascript
HTML5实现微信拍摄上传照片功能
2017/04/21 Javascript
ReactNative页面跳转Navigator实现的示例代码
2017/08/02 Javascript
webpack vue 项目打包生成的文件,资源文件报404问题的修复方法(总结篇)
2018/01/09 Javascript
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
2018/03/05 Javascript
vue源码解析之事件机制原理
2018/04/21 Javascript
vue+springmvc导出excel数据的实现代码
2018/06/27 Javascript
微信小程序一周时间表功能实现
2019/10/17 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
2020/05/17 Javascript
[01:43]倾听DOTA2英雄之声 魅惑魔女国服配音鉴赏
2013/06/06 DOTA
python3.6实现学生信息管理系统
2019/02/21 Python
Python 项目转化为so文件实例
2019/12/23 Python
Python MOCK SERVER moco模拟接口测试过程解析
2020/04/13 Python
解析python 类方法、对象方法、静态方法
2020/08/15 Python
python关于倒排列的知识点总结
2020/10/13 Python
css3进阶之less实现星空动画的示例代码
2019/09/10 HTML / CSS
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
墨西哥巴士车票在线购买:ClickBus
2018/03/27 全球购物
2014年开学第一课活动方案
2014/03/06 职场文书