在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ JS中setTimeout函數(shù)中的時間失效,什么原因?

JS中setTimeout函數(shù)中的時間失效,什么原因?

代碼如下:

clipboard.png

這段代碼執(zhí)行,達(dá)不到預(yù)期的效果。func不會等待1秒執(zhí)行,而是立即執(zhí)行。

把標(biāo)注部分由:func(node)改為function() {func(node)}

則會按照預(yù)期等待1秒執(zhí)行。

為什么呢,比較迷惑。

回答
編輯回答
苦妄

沒有為啥,因為你func(node)直接調(diào)用了func。
頭一個參數(shù)讓傳的也是個函數(shù),而不是函數(shù)的調(diào)用。
什么是回調(diào)函數(shù),就是不是你調(diào)用的卻執(zhí)行了的函數(shù),就是不需要你主動調(diào)用。

function fun () {
  console.log(1)
  return function () {
    console.log(2)
  }
}
setTimeout(fun(), 1000)
自己看下結(jié)果
2017年9月22日 02:40
編輯回答
情殺
setTimeout(func(node), 1000);

改成

setTimeout(function() {
  func(node);
}, 1000);

就行了。
至于原因一樓已經(jīng)說清楚了。

2017年10月8日 09:52