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

 9ExpandedBlockEnd.gif    }

10None.gif    //添加
11None.gif    pa.prototype.add=function(a)
12ExpandedBlockStart.gifContractedBlock.gif    dot.gif{
13InBlock.gif        if(!this.contains(a))
14ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
15InBlock.gif            this[":"+a]=1;
16InBlock.gif            this.size++
17ExpandedSubBlockEnd.gif        }

18ExpandedBlockEnd.gif    }
;
19None.gif    //删除
20None.gif    pa.prototype.remove=function(a)
21ExpandedBlockStart.gifContractedBlock.gif    dot.gif{
22InBlock.gif        if(this.contains(a))
23ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
24InBlock.gif            delete this[":"+a];
25InBlock.gif            this.size--
26ExpandedSubBlockEnd.gif        }

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

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

46InBlock.gif            else
47ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
48InBlock.gif                throw"assertion failed";
49ExpandedSubBlockEnd.gif            }

50ExpandedSubBlockEnd.gif        }

51ExpandedBlockEnd.gif    }
;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值