首頁 > web前端 > js教程 > js 非同步操作回呼函數如何控制執行順序_javascript技巧

js 非同步操作回呼函數如何控制執行順序_javascript技巧

WBOY
發布: 2016-05-16 17:07:27
原創
1357 人瀏覽過

需求:
fun A() { asyn(parm1, parm2, onsuccess(){ }) ;}
fun B() {asyn(paem1, parm2, onsuccess(){}) ;}

函數B要求執行在函數A之後

非同步執行
如果直接使用
A();
B();

是無法滿足執行條件的。

考慮將B作為回呼函數傳遞給A,然後A再執行的onsucess中執行B函數
A(B);

即可實現功能需求。

js是單執行緒的.

1、呼叫函數時,如果參數多於定義時的個數,則多餘的參數將會被忽略,如果少於定義時的個數則缺失的參數數會自動賦予undefined值。
2、如果是用function語句宣告的函數定義則不可以出現在迴圈或條件語句中,但是如果是用函數直接量方法的函數定義則可以出現在任何js表達式中。
3、arguments物件
函數的arguments物件就像一個數組,裡面保存著函數呼叫時的實際參數,可以用arguments[0]、arguments[1]、arguments[2]…等來引用這些參數,即使這些參數在定義函數時是沒有的。但arguments並非真正的陣列物件。
function a(x,y){
arguments[0] //表示第一個參數x
arguments[1] //表示第一個參數y
arguments[2] //表示第三個參數,前提是在呼叫函數時傳入了三個參數

arguments.length //表示實際傳入參數的數量
arguments.callee(x,y) / /呼叫自身}
arguments物件具有length屬性,表示的是函數呼叫時實際傳入的參數的個數。
arguments物件也具有callee屬性,用來引用目前正在執行的函數,這個在匿名函數中尤其有用。
4、函數的length屬性(沒錯,函數也是具有length屬性的)
與arguments.length不同,函數的length屬性表示的是定義函數時的形參個數,而不是函數調用時的實際參數個數。可以用arguments.callee.length來呼叫函數的length屬性。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板