自己动手实现jQuery Callbacks完整功能代码详解

2020-05-18 08:43:17易采站长站整理

                        {
                            break;
                        }
                    }
                }


                firedTimes++;


                if ( ops.memory )
                {
                    lastArgs = args;
                }


                return this;
            };
        };
 


 测试函数如下:(注意fn1 fn2是匿名函数, fn2返回false , fn3是有“名”函数)


 
 var fn1 = function ( v )
        {
            console.log( ‘fn1 ‘ + ( v || ” ) );
        };


        var fn2 = function ( v )
        {
            console.log( ‘fn2 ‘ + ( v || ” ) );
            return false;
        };


        function fn3( v )
        {
            console.log( ‘fn3 ‘ + ( v || ” ) );
        };
 


 1 . 测试add & fire


var cb=new MyCallbacks();


cb.add(fn1)


cb.add(fn2)


cb.add(fn3)


cb.fire(‘hello’)


输出:


fn1 hello
fn2 hello
fn3 hello
2.测试remove
var cb=new MyCallbacks();


cb.add(fn1)


cb.add(fn2)


cb.add(fn3)


cb.remove(fn1)
cb.fire(‘hello’)
cb.remove(fn3)
cb.fire(‘hello’)