要件:
fun A() { asyn(parm1, parm2, onsuccess(){ }) ;}
fun B() {asyn(paem1, parm2, onsuccess(){}) ;}
関数 B は関数 A
非同期実行
A();
B();
の後に実行する必要があります。の会った。
B をコールバック関数として A に渡し、次に A が onsuccess
A (B);
で B 関数を実行して機能要件を達成することを検討します。
js はシングルスレッドです。
1. 関数を呼び出すときに、定義の数よりも多くのパラメーターがある場合、その数よりも少ない追加のパラメーターは無視されます。パラメータ、番号の場合、不足しているパラメータ番号には自動的に未定義の値が割り当てられます。
2. 関数定義が function ステートメントで宣言されている場合、その関数定義はループまたは条件ステートメント内に出現することはできませんが、関数定義が関数リテラル メソッドで宣言されている場合は、任意の js 式に出現することができます。
3. 引数オブジェクト
関数の引数オブジェクトは、関数の呼び出し時に実際のパラメータを格納する配列のようなもので、arguments[0]、arguments[1]、arguments[2] を使用して参照できます。 ] などのパラメータ (関数の定義時にこれらのパラメータが存在しない場合でも)。ただし、引数は実際の配列オブジェクトではありません。
function a(x,y){
arguments[0] //最初のパラメータ x を表します
arguments[1] //最初のパラメータ y を表します
arguments[2] // 3 番目のパラメーター。関数
を呼び出すときに 3 つのパラメーターが渡される場合...
arguments.length //
arguments.callee(x,y) / /Call で渡されるパラメーターの実際の数を表します。
arguments オブジェクトには length 属性があり、関数の呼び出し時に実際に渡されるパラメータの数を表します。
arguments オブジェクトには callee 属性もあり、現在実行中の関数を参照するために使用されます。これは特に匿名関数で役立ちます。
4. 関数の長さ属性 (はい、関数には長さ属性もあります)
arguments.length とは異なり、関数の長さ属性は関数を定義するときの仮パラメーターの数を表します。実際のパラメータ数の関数を呼び出します。 argument.callee.length を使用して、関数の length プロパティを呼び出すことができます。