Javascript - 传递一个带参数的函数作为参数

时间:2011-06-14 23:49:33

标签: javascript callback parameter-passing

我正在清理一些脚本错误并且有一个微妙的困境。

考虑这行代码:

Session.Timer = window.setTimeout("TimeoutHandler(Session)", 1000);

这不起作用,因为当Timeout尝试执行TimeoutHandler(Session)时,它将不知道Session变量是什么(超出范围)。

有没有办法让Session“值”转换为字符串数字,以便正确执行?

1 个答案:

答案 0 :(得分:6)

使用闭包(使用匿名函数)而不是字符串,它将为您保留对Session的引用。

Session.Timer = window.setTimeout(function() { TimeoutHandler(Session); }, 1000);

如果你不熟悉闭包,这里是brief introduction