js 解决函数加载的问题

var queue = function(funcs, scope) {
        (function next() {
              if(funcs.length > 0) {
                  funcs.shift().apply(scope || {}, [next].concat(Array.prototype.slice.call(arguments, 0)));
              }
        })();
    };
    
    var obj = {
        value: null
    };
    
    queue([
        function(callback) {
            var self = this;
            setTimeout(function() {
                self.value = 10;
                callback(20);
            }, 200);
        },
        function(callback, add) {
            console.log(this.value + add);
            callback();
    },
        function() {
            console.log(obj.value);
        }
    ], obj);
posted @ 2016-04-19 09:52  shidengyun  阅读(293)  评论(0编辑  收藏  举报