易截截图软件、单文件、免安装、纯绿色、仅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和AS相互交互调用 Re

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

javascript 实现继承

<mce:script language="javascript" ><!--
function person(name,age)
{
this.name=name;

this.age=age;
}
function man(name,age)
{
this.sex="男";
this.base=person;
this.base(name,age);
}
function woman(name,age)
{
this.sex="女";
this.base=person;
this.base(name,age)
} ......

javascript中setTimeout()函数

javascript中setTimeout()函数
大家都知道javascript中的setTimeput()函数的作用,一般会用他来处理一些连续的事情,们先看一个例子:
<head>
    <script>
        function init()
         ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号