簡體   English   中英

Javascript中setTimeout和匿名函數的問題

[英]Problem with setTimeout and anonymous function in Javascript

為什么這在Firebug控制台中不起作用:

function(s,e) {
setTimeout(function(){grvClosingDocs.Refresh();CBPDocFlow.PerformCallback();},100)
}

雖然這樣做:

setTimeout(function(){grvClosingDocs.Refresh();CBPDocFlow.PerformCallback();},100)

它不起作用,因為你沒有調用包裝你的setTimeout的另一個匿名函數,它是如何實際調用的?

您必須為其命名並調用它:

function someFunc(s,e) {
    setTimeout(function(){grvClosingDocs.Refresh();CBPDocFlow.PerformCallback();},100)
}
someFunc();

或者將其包裹在parens中並立即調用它

(function(s,e) {
    setTimeout(function(){grvClosingDocs.Refresh();CBPDocFlow.PerformCallback();},100)
})();

或者命名並在文檔加載時調用它:

JS

function someFunc(s,e) {
    setTimeout(function(){grvClosingDocs.Refresh();CBPDocFlow.PerformCallback();},100)
}

HTML

<body onload='someFunc'>
....

因為您沒有在第一個示例中調用該函數。 您需要調用該函數,您可以執行以下操作。 函數周圍的括號用於防止語法錯誤: 函數表達式 (這是您的示例)本身不是有效語句。 最后的括號調用該函數。

(function(s,e) {
  setTimeout(function(){grvClosingDocs.Refresh();CBPDocFlow.PerformCallback();},100)
})();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM