这是一段javascript队列的代码,其中process我不是很明白,望详细注解!

/***@authorfloyd*@name异步处理事件队列*@examplevarqe=newQueneEnginer();qe.add(fn,context,arrP... /**
* @author floyd
* @name 异步处理事件队列
* @example var qe = new QueneEnginer();qe.add(fn,context,arrParam);qe.start();
*/

var QueneEnginer = function(){

this.Quene = [];
}
QueneEnginer.prototype = {
processTime : 20,
/**
* 添加事件到队列中
* @param {function} fn 函数对象
* @param {object} context 上下文对象 可为空
* @param {array} arrParam 参数数组 可为空
*/
add : function(fn,context,arrParam){

this.Quene.push(
{
fn : fn,
context : context,
param : arrParam
}
);
},
start : function(){
var that = this;
setTimeout(function(){that.process();},that.processTime);
},
process : function(){

var quene = this.Quene.shift();

if(!quene)return ;

quene.fn.apply(quene.context,quene.param);

quene = null;

this.start();
}
}

这是一段javascript队列的代码,其中process我不是很明白,望详细注解!
谢谢!!
展开
 我来答
huibo865686
2014-02-24 · TA获得超过916个赞
知道小有建树答主
回答量:325
采纳率:80%
帮助的人:264万
展开全部
var QueneEnginer = function(){//队列构造器
    this.Quene = [];//队列数组
}
QueneEnginer.prototype = {
    processTime : 20,
    /**
     * 添加事件到队列中
     * @param {function} fn 函数对象
     * @param {object} context 上下文对象 可为空
     * @param {array} arrParam 参数数组 可为空
     */
    add : function(fn,context,arrParam){

        this.Quene.push(//添加一个事件
            {
                fn : fn,
                context : context,
                param : arrParam
            }
        );
    },
    start : function(){//开始执行
        var that = this;
        setTimeout(function(){that.process();},that.processTime);
    },
    process : function(){//执行事件过程
        
        var quene = this.Quene.shift();//取出事件队列的第一个,
                                       //并且从this.Quene中删除这个事件
        
        if(!quene)return ;//如果队列里一个事件都没有,不继续往下执行,结束运行

        quene.fn.apply(quene.context,quene.param);//执行事件
        
        quene = null;//清除quene对象
        
        this.start();//继续调用start,直到队列为空时,结束
    }
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式