繁体   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