这可能非常容易,但我无法解决正在发生的事情。
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
,
a
也是一些在 1 秒后过期时调用的参数,然后调用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);
}
它a
使用变量引用的值num
作为参数调用变量引用的函数。
setTimeout返回一个timeoutID,可以使用clearTimeout取消它,所以如果你运行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;});