關於 Callbacks 傳參問題

2021-09-16 21:08:29 字數 883 閱讀 8538

var 

cb = $.callbacks(), // 定義callbacks物件

fn1 = function(),

fn2 = function();

cb.add( a,b );

cb.fire();

無參方式很容易處理,只要執行addfire方法即可。

var 

cb = $.callbacks(), // 定義callbacks物件

fn1 = function( param ),

fn2 = function(param);

cb.add( a,b );

cb.fire('fn1','fn2');

這個時候你會發現,彈出了兩次fn1,並不是自己期待的結果,感覺這裡jq存在bug,測試中使用的是jq-2.1.4的版本。研究原始碼是發現,這個地方確實存在傳參的問題,於是動手改造了一下。

第一處改造:原始碼:

改後的**:

注意3099行**的區別。

第二處改造:原始碼:

改造後的**:

注意3207**的區別。

關於函式傳參問題

swap的功能就是個簡單交換兩個數的值 在主函式中呼叫 swap array j 1 array j 那真正傳遞的什麼引數呢?關於這個問題和acm群裡的大牛們討論完並真正測試後,得到爭取結論 函式傳遞都是從後往前傳的,就是第乙個引數最後傳,最後乙個第乙個傳,所以是先傳array j 然後j j 1,...

關於多執行緒傳參問題

無引數 我們都知道使用多執行緒最簡單的方式是下面這樣 void somemethod void createthread 乙個引數 但是如果要是想給somemethod方法傳入引數的話,發現這種方法不好用了 因為thread類並不支援這樣 但是為了解決這個問題,類庫中提供了乙個支援的 使用它可以支援...

關於多執行緒傳參問題

無引數 我們都知道使用多執行緒最簡單的方式是下面這樣 void somemethod void createthread 乙個引數 但是如果要是想給somemethod方法傳入引數的話,發現這種方法不好用了 因為thread類並不支援這樣 但是為了解決這個問題,類庫中提供了乙個支援的 使用它可以支援...