萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> js 異步操作回調函數如何控制執行順序

js 異步操作回調函數如何控制執行順序

 本文為大家講解下js異步操作時回調函數如何控制執行順序,感興趣的朋友可以參考下

需求:  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屬性。   
copyright © 萬盛學電腦網 all rights reserved