我对settimeout完成后的混乱感到困惑,是否将函数名称/函数定义(作为参数传递给settimeout的函数)或调用的函数放在函数名/函数中
function cb(){
console.log("Hi!")
}
setTimeout(cb,2000) // what will be put on the callback queue after 2 sec cb or cb()
所以现在,如果我在此之后呼叫setTimeout(cb,2000)
,它将仅在cb or cb()
中放入回叫队列中>
并且如果我假设它只是像这样放置cb,并且当eventloop将cb放入调用堆栈中时,它将执行cb函数因此,如果是这样,那么如果我有:
function cb(num){ console.log(num); console.log("Hi!") }
并调用
setTimeout(cb,2000,5)
,因此对于这种情况,在计时器完成后,并且如果仅将cb放入回调队列中,则当事件循环将cb放入调用堆栈时,它如何记住或传递num参数(在这种情况下为5),因为它会将5记录到控制台。
非常感谢您的协助,因为我无法为这种困惑设定心理模型。
我对settimeout完成后的混乱感到困惑,是否将函数名称/函数定义(我们将其作为参数传递给settimeout)或...