帮忙解释一下这段代码,该怎么解决

帮忙解释一下这段代码
JScript code

var attEventList = function(){
                
    this.eventList = [];

};

attEventList.prototype = {
    
    processTime : 20,
    add : function(fn,context,arrParam){
    
        this.eventList.push(
            {
                fn : fn,
                context : context,    //这里干嘛用的?
                param : arrParam    //这里干嘛用的?
            }
        );
    
    },
    start : function(){
        
        var that = this;
        setTimeout(function(){
            that.process();
            },that.processTime);
        
    },
    process : function(){
    
        var ev = this.eventList.shift();    //这里干嘛用的?
        if(!ev)
        {
            return;
        }
        ev.fn.apply(ev.context,ev.param);    //这里干嘛用的?
        ev = null;    //这里干嘛用的,为什么要这么做?
        this.start();
    
    }
    
};



求指点谢谢。。。。。。。

------解决方案--------------------
attEventList.prototype = {

processTime : 20,
add : function(fn,context,arrParam){ //

this.eventList.push(
{
fn : fn,
context : context, //函数内部的代码
param : arrParam // 这个是参数,也就是把arrParam覆值把param
}
);

},



 var ev = this.eventList.shift(); //这里干嘛的?//这个是移除这个eventList的事件


------解决方案--------------------
我相信你没提的地方你都懂的,就不赘述了

context : context, //这里干嘛用的?
//传参赋值

param : arrParam //这里干嘛用的?
//传参赋值

var ev = this.eventList.shift(); //这里干嘛用的?
//shift()数组的方法
//获取数组eventList的最前一个元素,并赋值给 ev

ev.fn.apply(ev.context,ev.param); //这里干嘛用的?
//apply(o,[])函数的方法
//令ev的属性 context 调用 fn 并传参 param

ev = null; //这里干嘛用的,为什么要这么做?
//释放指针