首页 > jquery 中 Callbacks 函数如何分别传参

jquery 中 Callbacks 函数如何分别传参

function aaa(n){
    alert("a"+n);
}
function bbb(n){
    alert("b"+n);
}
var cb=$.Callbacks();
cb.add(aaa);
cb.add(bbb);

cb.fire("sss");   //利用这个方法可以传参,但是两个函数被传入的参数是一样的

我看了源码,是不是回调函数不可以分别为函数传参?


jQuery 回调队列利用观察者模式形成回调队列.将要执行的函数对象压入回调队列。在执行的时候,传入统一参数对回调队列进行回调。因而,回调函数不可以分别为函数传参。楼上的例子是压入两个回调函数,进行了两次调用,算不得为回调函数传入不同参数。


jQuery参考手册的例子:

function fn1( value ){
    console.log( value );
}

function fn2( value ){
    fn1("fn2 says:" + value);
    return false;
}

var callbacks = $.Callbacks();
callbacks.add( fn1 );
callbacks.fire( "foo!" ); // outputs: foo!

callbacks.add( fn2 );
callbacks.fire( "bar!" ); // outputs: bar!, fn2 says: bar!

【热门文章】
【热门文章】