易截截图软件、单文件、免安装、纯绿色、仅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 打印(人云亦云,我错了)

<html>
<head>
<meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5">
<title>***WSOFT.NET***</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<!--media=print 这个属性可以在打印时有效-->
<style ......

JavaScript 字符串替换和DOM操作技巧


最低一直在写JavaScript,就本人遇到的两个问题以及解决方法给大家分享一下.
1,点击一个按钮,创建一段HTML代码和现有的一模一样,但是里面所有ID的参数和方法里面的参数要改变,参数都是若干个字母+数字组成.新创建出来的HTML代码片段要里面的参数变成字母不变,数字要+1.
如,变之前的代码,
<div id=”testdiv1&rd ......

Javascript关键字 记录

刚在CSDN上看到一篇JAVASCRIPT的面试题目,其中有一个题目是关于javascript关键字的问题,试做了一下,结果做错了。唉。汗一个
于是上网找了一下,在此记录下来,以自勉。
Javascript关键字(Reserved
Words)是指在Javascript语言中有特定含义,成为Javascript语法中一部分的那些字。Javascript关键字是不能作为变量名
......

JavaScript判断浏览器类型及版本

你知道世界上有多少种浏览器吗?除了我们熟知的IE, Firefox, Opera, Safari四大浏览器之外,世界上还有近百种浏览器。
       几天前,浏览器家族有刚诞生了一位小王子,就是Google推出的Chrome浏览器。由于Chrome出生名门,尽管他还是个小家伙,没有人敢小看他。以后,咱们常说浏览器的&ld ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号