1.全局变量越多,引入错误的概率越高。2.全局变量与全局函数越多,发生命名冲突概率越高。3.函数过分依赖全局变量,会大幅度降低代码的可测试性与可维护性。4.避免一切意外的全局变量。5.使用单全局变量方式: 创建唯一全局对象名是独一无二的,将所有的功能代码挂在到这个全局变量上。 例子: func...
分类:
其他好文 时间:
2014-09-10 14:08:10
阅读次数:
187
在前文中我们不止一次强调过模块化编程的重要性,以及其可以解决的问题:① 解决单文件变量命名冲突问题② 解决前端多人协作问题③ 解决文件依赖问题④ 按需加载(这个说法其实很假了)⑤ ......为了深入了解加载器,中间阅读过一点requireJS的源码,但对于很多同学来说,对加载器的实现依旧不太清楚事...
分类:
Web程序 时间:
2014-09-09 21:27:49
阅读次数:
356
1.定义命名空间 ->>> 创建一个局部可用的对象,在对象中封装局部作用域内的有用代码. 命名空间创建了一个新的局部作用域,将其他代码与完全作用域分开。避免命名冲突命名空间对象标识符需唯一。 可以使用姓名或者字头作为名称的一部分,在定义中最好添加程序库的相关信息。 在javascript中,可以定义...
分类:
其他好文 时间:
2014-09-01 19:33:23
阅读次数:
227
一、前言今天要介绍的命名冲突并不是系统内部的命名冲突,而是系统与浏览器插件之间的命名冲突。二、现象描述:通过查看运维同事上传到工单中的图片可得出这样的结论:用户页面无法加载JS、CSS,但是HTML可以成功解析。三、故障分析过程,试图重现故障:(1)、由于HTML可以成功解析,排除网络原因。(2)、...
分类:
其他好文 时间:
2014-08-23 08:49:00
阅读次数:
201
本系列作为Effective JavaScript的读书笔记。
Item 8:少用全局对象
重点:
全局对象能够带来便利,但是有经验的程序员都会视图避免它。因为它会带来潜在的命名冲突的风险
全局变量是维系不同模块之间的纽带,模块之间只能通过全局变量来访问对方提供的功能
能使用局部变量的时候,绝不要使用全局变量
在browser中,this关键字会指向全局的window对...
分类:
编程语言 时间:
2014-08-22 13:07:09
阅读次数:
209
Java引入包(package)机制,提供了类的多层命名空间,用于解决类的命名冲突、类文件管理等问题。Java允许将一组功能相关的类放在同一个package下,从而组成逻辑上的类库单元。如果希望把一个类放在指定的包结构下,我应该在Java源程序的第一个非注释行放置如下格式的代码:package pa...
分类:
编程语言 时间:
2014-08-15 09:28:38
阅读次数:
213
为了便于管理大型软件系统中数目众多的类,解决类命名冲突的问题,java引入包(package)机制,提供类的多重类的命名空间。package作为java源文件中第一条语句,指明该文件中定义的类所在的包。(若缺省,则为无名包。)java编译器把包对应于文件系统的目录管理,package语句中,使用"....
分类:
编程语言 时间:
2014-08-14 16:24:08
阅读次数:
217
在敲机房时由于窗体命名不合适,修改了下窗体名称,发生名称冲突错误提示。...
分类:
其他好文 时间:
2014-08-10 21:40:50
阅读次数:
254
(function($){ ...})(jQuery)是一个“立即执行的匿名函数”,构成了一个闭包,可以防止命名冲突。在匿名函数内部,$参数引用jQuery对象。这个匿名函数不会等到DOM就绪就会执行。注意,使用这个hack时,脚本必须是在页面的head元素中链接和(或)执行的。之所以选择这个时机....
分类:
其他好文 时间:
2014-08-08 17:29:06
阅读次数:
245
命名空间:命名空间有助于减少程序中所需要的全局变量的数量,并且同时还有助于避免命名冲突或过长的名字前缀。 var MYAPP = MYAPP || {}; MYAPP.namespace = function(ns_string){ var parts = ns_string.split(...
分类:
编程语言 时间:
2014-08-05 15:42:39
阅读次数:
311