Javascript 如何运行作为参数给定的匿名函数

Javascript 如何运行作为参数给定的匿名函数,javascript,Javascript,我知道我可以在javascript中使用函数作为参数。我还可以运行作为参数给出的函数。下面是一个例子: function myfunction(param1, callbackfunction) { //do processing here callbackfunction(); } 如果我想给出一个匿名函数,它将如何在外部函数中运行呢 例如,使用如下函数 setTimeout(function(){ }) 这个匿名函数如何在没有名字的情况下直接运行?调用函数不需要名字。名称

我知道我可以在javascript中使用函数作为参数。我还可以运行作为参数给出的函数。下面是一个例子:

function myfunction(param1, callbackfunction)
{
    //do processing here
    callbackfunction();
}
如果我想给出一个匿名函数,它将如何在外部函数中运行呢

例如,使用如下函数

setTimeout(function(){
})

这个匿名函数如何在没有名字的情况下直接运行?

调用函数不需要名字。名称仅在调试工具中有用(例如,在检查堆栈跟踪时)

要调用函数,您需要一个解析为函数的表达式,可以使用
()

您将函数作为第一个参数传递给
setTimeout
,因此它存储在该函数的第一个参数中<代码>设置超时的内部,然后调用它

您对代码也这样做,只是它是第二个参数

myfunction("some param", function () { /* ... */ }) ;

也许这更清楚了

函数callFunction(param1,callbackfunction){
console.log('callFunction',param1)
//在这里处理吗
callbackfunction(param1);
}
函数myCustomCallback(参数){
log('myCustomCallback',param)
}
setTimeout(callFunction.bind(这个'one',myCustomCallback),1000)

setTimeout(callFunction.bind(这是'two',function(p){alert(p)}),2000)
,因为在setTimeout代码中,它接收对该函数的引用作为变量,然后决定运行它,就像您对回调函数所做的那样。唯一的区别是你看不到内部settimeout代码来判断它在做什么。你在这里比较苹果和梨…你的settimeout代码的例子相当于你写的
myfunction(“something”,function(){})
调用您的函数。您的第一个代码片段相当于settimeout函数的内部。