0

信じられないほど簡単かもしれませんが、何が起こっているのかを解決できませんでした。


function doSomething(a)
{
   var num=10;
   return setTimeout(
   function(){ a(num); }, 1000);
}

実際に私を混乱させる唯一のものはa(num)部分です。実際には何をしますか?
注意: JavaScript の構文に慣れていないため、本当に質問しています。

4

3 に答える 3

3

function doSomething()実行されるとパラメータが渡され、a1 秒後に有効期限が切れたときに呼び出されるaものもあり、呼び出された引数を渡して呼び出しますfunctionsetTimeout()function a()num

使用例

// call doSomething() passing the test() function as an argument
doSomething(test);


// takes a number as an argument and shows an alert with that value
function test(number)
{
   alert(number);
}

// takes a function as an argument that will perform a 1 second timeout then execute the function called a
function doSomething(a)
{
   var num=10;
   return setTimeout(
   function(){ a(num); }, 1000);
}
于 2012-04-14T19:41:27.233 に答える
0

setTimeoutは、 clearTimeoutを使用してキャンセルするために使用できるtimeoutIDを返すため、doSomethingを何度も実行すると、異なるtimeoutIDを表す異なる整数が得られます。

あなたの場合 a 関数でなければならないので、パラメーターnumを使用して呼び出すことができます

例:

function doSomethingElse (justANumber) {
    return justANumber + 1;
}

// Here you call your function
doSomething(doSomethingElse);

// or another special case
doSomething(function (justANumber) {return justANumber + 1;});
于 2012-04-14T19:52:26.890 に答える
0

a変数によって参照される値を引数として使用して、変数によって参照される関数を呼び出しnumます。

于 2012-04-14T19:40:35.890 に答える