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