遇到变化点封装它!
1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
<html xmlns="http://www.w3.org/1999/xhtml">
3
<head>
4
<title> change state </title>
5
<meta name="generator" content="editplus" />
6
<meta name="author" content="" />
7
<meta name="keywords" content="" />
8
<meta name="description" content="" />
9
</head>
10
11
<body>
12
<input type="button" id="execBtn" value="show1" />
13
<div id="show"></div>
14
<script type="text/javascript">
15
function Control(state){
16
this.State = state;
17
this.Execute = function(){
18
this.State.Execute(this);
19
}
20
}
21
22
function State(){
23
this.Title = "title1";
24
this.Execute = function(control){
25
show.innerHTML = this.Title;
26
execBtn.value = "show2";
27
control.State = new State2();
28
}
29
}
30
31
function State2(){
32
this.Title = "title2";
33
this.Execute = function(control){
34
show.innerHTML = this.Title;
35
execBtn.value = "show1";
36
control.State = new State();
37
}
38
}
39
40
var control;
41
42
window.onload = function(){
43
control = new Control(new State());
44
control.Execute();
45
}
46
47
execBtn.onclick = function(){
48
control.Execute();
49
}
50
51
52
</script>
53
</body>
54
</html>
55
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">2
<html xmlns="http://www.w3.org/1999/xhtml">3
<head>4
<title> change state </title>5
<meta name="generator" content="editplus" />6
<meta name="author" content="" />7
<meta name="keywords" content="" />8
<meta name="description" content="" />9
</head>10

11
<body>12
<input type="button" id="execBtn" value="show1" />13
<div id="show"></div>14
<script type="text/javascript">15
function Control(state){16
this.State = state;17
this.Execute = function(){18
this.State.Execute(this);19
}20
}21

22
function State(){23
this.Title = "title1";24
this.Execute = function(control){25
show.innerHTML = this.Title;26
execBtn.value = "show2";27
control.State = new State2();28
}29
}30
31
function State2(){32
this.Title = "title2";33
this.Execute = function(control){34
show.innerHTML = this.Title;35
execBtn.value = "show1";36
control.State = new State();37
}38
}39
40
var control;41

42
window.onload = function(){43
control = new Control(new State());44
control.Execute();45
}46
47
execBtn.onclick = function(){48
control.Execute();49
}50

51
52
</script>53
</body>54
</html>55

