易截截图软件、单文件、免安装、纯绿色、仅160KB

javascript中的模块和名字空间

JavaScript中的模块和名字空间是不可区分的内容。
我们定义的每个单独的函数都是作为全局对象的一个属性。而JavaScript代码模块所必须遵循的最重要的规则就是:避免定义全局变量。因为,当定义一个全局变量时,都要被其他模块覆盖的危险,所以模块化编码要用如下方式:
var ModuleClass={};
ModuleClass.函数名1=function(){
 函数体;//这个函数看起来是一个对象的方法。对,可以利用对象作为一个名字空间。
}
ModuleClass.函数名2=function(){
 函数体;
}
使用对象作为一个名字空间,将所有的函数及变量都放在其中。这样,即使函数或变量重名(即不同对象中有相同的函数名),他们不在一个名字空间中,这样就不会有被覆盖的危险了。
JavaScript模块化的第一条规则:一个模块不应该为全局名字空间添加多于一条的标记。解释:上例中的var ModuleClass = {};其实是在全局名字空间(全局对象)的一个属性。通俗的讲:除了给全局命名空间定义一个模块的命名空间,其他的你一句代码都不要写。
将上面的代码放入一个*.js文件中,以便模块的复用,并且是文件名与名字空间名要一致。假设我们将上面的代码放入ModuleClass.js文件当中(这时,你的名字空间与文件名要一致)。现在又出现了一个新问题:
如果名字冲突怎么办?即两个人同时使用了同一个文件名。大家知道,同一目录下市不允许有相同的文件名的,所以可以把这两个文件放入不同的目录下面。如util/ModuleClass.js和tools/ModuleClass.js,这时我们文件中的空间就不能跟以前那样了,而是如下面所示:
util/ModuleClass.js
var util;
if(!util) util = {};//第一级域名
util.ModuleClass = {};//第二级域名
util.ModuleClass.函数名1=funciton(){
 函数体;
}
util.ModuleClass.函数名2=function(){
 函数体;
}
tools/ModuleClass.js代码:
var tools;
if(!tools)tools={};//一级域名
tools.ModuleClass={};//二级域名
tools.ModuleClass.函数名1=function(){
 函数体;//这个函数看起来是一个对象的方法。对,可以利用对象作为一个名字空间
}
tools.ModuleClass.函数名2=function(){
 函数体;
}
这样就不会出冲突了。当然,有人会问了,要是有人定义的文件夹名是一样的,那不照样冲突?首先,这样的几率不大,如果真的有我们可以采用java的命名方式。如下:
命名空间为:com.公司名.项目名.util.空间名;
实际路径为:com/公司名


相关文档:

Javascript和AS相互交互调用 Re

一个公用类:flash.external.ExternalInterface;
该类有两个相关方法:
1、调用javascript函数;
ExternalInterface.call(´js函数名´[,以逗号隔开的多个参数]);
其中js函数名为在javascript中申明的函数名称,
传递的参数可以是as中任何类型的数据,这些参数将被自动转换成js变量;
2、注册js中可用的回 ......

用javascript评估用户输入密码的强度

javascript评估用户输入密码的强度
密码已经是我们生活工作中必不可少的工具,但一个不安全的密码有又有可能会给我们造成不必要的损失。作为网站设计者,如果我们在网页中能对用户输入的密码进行安全评估,并显示出相应的提示信息,那么对用户设置一个安全的密码将有很大帮助。同时也使得网站更具人性化,更有吸引力.
什么是一 ......

[读书笔记][JavaScript权威指南(第四版)][DOM]

1.HTML文档树形表示
2.Node[] Node.childNodes 
//返回Node对象的所有字节点
3.Node.firstChild  /  lastChild  /nextSibling(下一个兄弟节点)  / previousSibling (上一个兄弟节点)  / parentNode
属性
4.Node.appendChild()  /  removeChild()  /  replaceChil ......

JavaScript中的Static overflow at line

今天在学习Bom时遇到了一个错误:
Static overflow at 7
错误原因:自定义了一个 scrollTo(),与系统window.scrollTo()冲突,以致引起死循环,此错误在弹出错误框,而在FF下没有反应,但function也不执行。另外<img src="" onerror=""/>也可能出现这种情况。详细请参考:http://www.cnblogs.com/S.Sams/archive/200 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号