博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象的JavaScript(一)命名空间
阅读量:5332 次
发布时间:2019-06-14

本文共 1038 字,大约阅读时间需要 3 分钟。

在小项目中对于JavaScript使用,只要写几个function就行了。但在大型项目中,尤其是在开发追求良好的用户体验的网站中,如SNS,就会用到大量的JavaScrpt,有时JavaScript的工作量胜过了C#,这时写一堆function,就会显得很乱,杂乱无章,甚至会出现命名冲突,管理和维护起来都很麻烦。对于这种情况我们就需要使用面向对象的思想来开发JavaScript。那我们就这样作罢:

 对于一个项目,首先要有个命名空间。所以我们首先要做的是定义一个函数来注册命名空间。代码如下:

// 声明一个全局对象RegisterNameSpace函数,参数为名称空间全路径,如"cnblogs.blog"RegisterNameSpace = function(fullName) {    // 将命名空间切成N部分    var nsArray = fullName.split('.');    var strEval = "";    var strNS = "";    for (var i = 0; i < nsArray.length; i++) {        if (i != 0){         strNS += ".";         }        strNS += nsArray[i];        // 依次创建构造命名空间对象(假如不存在的话)的语句        strEval += "if (typeof(" + strNS + ") == 'undefined') " + strNS + " = new Object();"    }    if (strEval != "") eval(strEval);}

好了,现在来注册几个命名空间试试,就已博客园为例吧,博客园有几个模块“博客”、“新闻”、“小组”......

RegisterNameSpace("cnblogs.blog");

RegisterNameSpace("cnblogs.news");
RegisterNameSpace("cnblogs.group");
事实上,这里的命名空间就是一个对象,一个Object。

如果写一堆function难免会出现变量或函数的命名冲突,应用了命名空间这种情况就从此杜绝了,而且代码易于管理。

转载于:https://www.cnblogs.com/amylis_chen/p/5538423.html

你可能感兴趣的文章
ssdb binlog机制 存疑
查看>>
Vue 2.0 组件库总结
查看>>
HDU5033 Building(单调栈)
查看>>
Kafka 安装配置 及 简单实验记录
查看>>
想成为程序猿?28个程序员专供在线学习网站(转)
查看>>
font-style: oblique文字斜体,display:inline-block显示间隙
查看>>
css设置滚动条并显示或隐藏
查看>>
【leetcode❤python】13. Roman to Integer
查看>>
常用关于 JavaScript 中的跨域访问方法
查看>>
织梦万能调用LOOP标签!
查看>>
Microsoft 官网 socket异步
查看>>
asp.net MVC helper 和自定义函数@functions小结
查看>>
L1-Day34
查看>>
Linux主机在LNMP环境中同时运行多个PHP版本
查看>>
玩转Xcode之修改系统生成的注释模板
查看>>
8、二进制中1的个数------------>剑指offer系列
查看>>
深入理解JavaScript系列(13):This? Yes,this!
查看>>
免费素材下载:一套超棒的免费UI套件
查看>>
jmeter中如何使用csv文件并读取数据
查看>>
ASP.NET MVC随记汇总
查看>>