K_Reverter的网页开发记录

要么不做,要么就当作艺术品来做!

导航

Google Maps API的库JS文件分析(5)

       在Google Maps API提供的JS文件中,引用了一个后台的JS库文件,该文件针对不同的浏览器有三个版本,这几天因为我想给我的Google Map扩展一些功能,所以研究了这个文件,我现在正打算陆续将我注释过的该文件放在网上,该文件一共有7000多行,我会分段渐渐的注释出来,我是按照分类注释的,所以并不会按照该JS文件顺序。

        该文件Google作了处理,所有的变量名都被处理成了简单的a,b,c,d之类,所以理解起来比较费劲。

        该JS文件是以IE版本的http://maps.google.com/mapfiles/maps.21.js来分析的,其他的几个我觉得基本的架构也应该差不多,所以我没有仔细看,实际上,这个文件Google也会不停的更新(在我写这个文章的时候,我发现Google已经更新到maps.25.js了),不过我想架构上也不会有太大的变动吧。

        由于该文件是在比较复杂,所以难免会出现理解错误的情况,请谅解!

        下面是第5个(这个是两个简单的库对象):

 1//这个对像是一个列表,用来进行可能重复文本项的处理,将每一个项名称通过add添加到列表中,并通过contains检查是否已经存在
 2    function pa(a)
 3    {
 4        this.size=0;
 5        if(a)
 6        {
 7            for(var b=a.length-1;b>=0;b--)this.add(a[b])
 8        }

 9    }

10    //添加
11    pa.prototype.add=function(a)
12    {
13        if(!this.contains(a))
14        {
15            this[":"+a]=1;
16            this.size++
17        }

18    }
;
19    //删除
20    pa.prototype.remove=function(a)
21    {
22        if(this.contains(a))
23        {
24            delete this[":"+a];
25            this.size--
26        }

27    }
;
28    //检查是否已经存在
29    pa.prototype.contains=function(a)
30    {
31        return this[":"+a]==1
32    }
;
33    function Za()
34    {
35        return false
36    }

37//判断变量a是否存在
38    function Va(a)
39    {
40        if(!a)
41        {
42            if(Error)
43            {
44                throw"assertion failed: "+Error().stack;
45            }

46            else
47            {
48                throw"assertion failed";
49            }

50        }

51    }
;

posted on 2005-10-21 16:26  K_Reverter  阅读(499)  评论(0编辑  收藏  举报