01.<script type="text/javascript">  
02.       //自定义事件;事件是一种叫做观察者的设计模式  
03.         
04.       function EventTarget(){  
05.         this.handlers={};  //函数处理器数组  
06.       }  
07.       EventTarget.prototype={  
08.        constructor:EventTarget,//手动指定constructor为EventTarget  
09.        addHandler:function(type,handler){//添加一个事件处理器  
10.            if(typeof this.handlers[type] == "undefined"){  
11.                this.handlers[type]=[];  
12.            }  
13.            this.handlers[type].push(handler);  
14.        },  
15.        fire:function(event){//触发事件  
16.            if(!event.target){  
17.                event.target=this;  
18.            }  
19.            if(this.handlers[event.type] instanceof Array){  
20.                var handlers=this.handlers[event.type];  
21.                for(var i=0,len=handlers.length;i<len;i++){  
22.                    handlers[i](event);  
23.                }  
24.            }  
25.        },  
26.        removeHandler:function(type,handler){//删除事件处理器  
27.            if(this.handlers[type] instanceof Array){  
28.            var handlers=this.handlers[type];  
29.            for(var i=0,len=handlers.length;i<len;i++){  
30.                if(handlers[i]===handler){  
31.                    break;  
32.                }  
33.            }  
34.            handlers.splice(i,1);//删除指定的handler处理器  
35.            }  
36.        }  
37.       }  
38.         
39.         
40.       function handleMessage(event){  
41.        alert(event.message);  
42.       }  
43.       var event_target=new EventTarget();  
44.       event_target.addHandler("message", handleMessage);  
45.      //event_target.removeHandler("message", handleMessage);  
46.       event_target.fire({type:"message",message:"hello world!"});  
47.    </script>   除了这种办法 大家还有什么比较好的方案 欢迎大家分享一下 谢谢