模仿jquery的delay函数,链式延时

var test = {
                delay: function (time) {
                    test.allTime += time;
                    var queue = {};
                    for (var i in test) {
                        if (i === 'delay' || i === 'c') continue;
                        queue[i] = function(i){
                            return function () {
                            setTimeout(function () {
                                test[i]();
                            }, test.allTime);
                            return test;
                        }}(i);
                    }

                    return queue;
                },
                run: function () {
                    console.log(this.c);
                },
                c: 20,
                allTime:0
            };
            var k = test.delay(2000).run();
            k.delay(2000).run();

  用这种方式可以达到test.delay(2000).run().delay(2000).run();仅供参考


posted @ 2016-06-13 18:31  前门攻城狮  阅读(255)  评论(0编辑  收藏  举报