遇到变化点封装它!
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
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