javascript委托事件

function delegate(func){
    
this.arr = new Array(); // 回调函数数组
    this.add = function(func){
        
this.arr[this.arr.length] = func;
    };
    
this.run = function(){
        
for(var i=0;i<this.arr.length;i++){
            
var func = this.arr[i];
            
if(typeof func == "function"){
                func(); 
// 遍历所有方法以及调用
            }
        }
    }
    
this.add(func);
}
// 定义一个类,同样包括两个方法
function WriteToWeb(){
    
this.Write = function(){
        alert(
"委托调用了一个类实例方法。");
    };
}
WriteToWeb.StaticWrite 
= function(){
    alert(
"委托调用了一个静态方法。");
};
// 新建一个委托
var WriteMessage = new delegate(WriteToWeb.StaticWrite);
// 新建一个WriteToWeb实例
var w = new WriteToWeb();
// 添加委托组成委托链
WriteMessage.add(w.Write);
// 执行委托链上所有的回调函数
WriteMessage.run();
posted @ 2010-04-01 13:44  x4646  阅读(473)  评论(0编辑  收藏  举报