信じられないほど簡単かもしれませんが、何が起こっているのかを解決できませんでした。
function doSomething(a)
{
var num=10;
return setTimeout(
function(){ a(num); }, 1000);
}
実際に私を混乱させる唯一のものはa(num)部分です。実際には何をしますか?
注意: JavaScript の構文に慣れていないため、本当に質問しています。
信じられないほど簡単かもしれませんが、何が起こっているのかを解決できませんでした。
function doSomething(a)
{
var num=10;
return setTimeout(
function(){ a(num); }, 1000);
}
実際に私を混乱させる唯一のものはa(num)部分です。実際には何をしますか?
注意: JavaScript の構文に慣れていないため、本当に質問しています。
がfunction
doSomething()
実行されるとパラメータが渡され、a
1
秒後に有効期限が切れたときに呼び出されるa
ものもあり、呼び出された引数を渡して呼び出しますfunction
setTimeout()
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);
}
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;});
a
変数によって参照される値を引数として使用して、変数によって参照される関数を呼び出しnum
ます。