Java JavaScript Web2.0

WWW World, Jack's World
posts - 9, comments - 28, trackbacks - 0, articles - 0
  BlogJava :: 首页 ::  :: 联系 :: 聚合  :: 管理

关于Namespace, YUI和Dojo对此问题的异同

Posted on 2007-08-28 19:10 Jack L 阅读(733) 评论(0)  编辑  收藏 所属分类: JavaScript

YUI和Dojo的widget都必须存在于自己的名字空间内,这些名字空间是预先建立好的。 那么,如果我们要建立自己的名字空间怎么办呢?(产生这种需求的原因通常是,我们要管理难以管理的JavaScript代码。)


在YUI中:

 执行

1. YAHOO.namespace ("myspace");

 然后你就拥有了YAHOO.myspace这个名字空间,可以进行类似如下的操作:

2. YAHOO.myspace.alertHello=function() {alert("Hello");}

实质上,YUI.namespace相当于建立了一个表项,准确地说是相联数组(associative array)的一项。 我们可以用以下两句代替上面的1、2语句

1)YAHOO["myspace"]=new function(){};

2)YAHOO["myspace"].alertHello=function(){ alert("Hello");};

而且1、2与1)、2)可以交叉组合使用。

 不管你使用哪种方式创建自己的名字空间,都有两种方式调用alertHello

a. YAHOO["myspace"].alertHello();

b. YAHOO.myspace.alertHello();


在Dojo中:

使用方式参考:dojo_custom-namespace

Dojo.require()提供了更强大的名字空间管理工具:Dojo用module来对应名字空间的含义。 我尚为对其相关函数的原理进行深入研究,也没有寻找等价的使用方式。

 但是,注意手册中这句话:“First of all, you'll want to create a directory structure ...”。也就是说,Dojo的module一定要对应一个js文件。

所以dojo.require机制不是为了创建只存在于逻辑上的名字空间。 dojo.require一定会去下载相应的js文件,参考dojo 0.9的手册: dojo-require



评论

# re: 关于Namespace, YUI和Dojo对此问题的异同  回复  更多评论   

2007-08-28 20:32 by 姜利阳
欢迎新队员

# re: 关于Namespace, YUI和Dojo对此问题的异同  回复  更多评论   

2007-08-28 21:46 by Jack L
3X:)

只有注册用户登录后才能发表评论。


网站导航: