jQuery源码分析之Callbacks详解

2020-05-23 06:21:26易采站长站整理

                var list = [],//回调函数列表
                    fired;//是否执行过
                //返回一个闭包的Callbakcs对象
                return {
                    //…省略部分代码
                    fireWith: function (context, data) {
                        //触发回调函数,并指定上下文
                        if (list) {
                            fired = true;
                            for (var i = 0, len = list.length; i < len; i++) {
                                //当Callbacks中某一个函数返回false的时候,停止Callbacks后续的执行
                                if (list[i].apply(context, data) === false)
                                    break;
                            }
                        }
                        //如果配置了once模型,则全局变量once为true,则list重置
                        if (once) list = undefined;
                        return this;