该文件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
};

2

3



4

5

6



7

8

9

10

11

12



13

14



15

16

17

18

19

20

21



22

23



24

25

26

27

28

29

30



31

32

33

34



35

36

37

38

39



40

41



42

43



44

45

46

47



48

49

50

51
