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
};
//这个对像是一个列表,用来进行可能重复文本项的处理,将每一个项名称通过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]==132
};33
function Za()34
{35
return false36
}37
//判断变量a是否存在38
function Va(a)39
{40
if(!a)41
{42
if(Error)43
{44
throw"assertion failed: "+Error().stack;45
}46
else47
{48
throw"assertion failed";49
}50
}51
};posted on 2005-10-21 16:26 K_Reverter 阅读(504) 评论(0) 收藏 举报

浙公网安备 33010602011771号