我正在清理一些脚本错误并且有一个微妙的困境。
考虑这行代码:
Session.Timer = window.setTimeout("TimeoutHandler(Session)", 1000);
这不起作用,因为当Timeout尝试执行TimeoutHandler(Session)
时,它将不知道Session变量是什么(超出范围)。
有没有办法让Session
“值”转换为字符串或数字,以便正确执行?
答案 0 :(得分:6)
使用闭包(使用匿名函数)而不是字符串,它将为您保留对Session的引用。
Session.Timer = window.setTimeout(function() { TimeoutHandler(Session); }, 1000);
如果你不熟悉闭包,这里是brief introduction。