Max*_*and 1 javascript callback parameter-passing
我正在清理一些脚本错误,并且有一个微妙的困境.
考虑以下代码行:
Session.Timer = window.setTimeout("TimeoutHandler(Session)", 1000);
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为当Timeout尝试执行时TimeoutHandler(Session),它将不知道Session变量是什么(超出范围).
有没有办法将Session"值"转换为字符串或数字,以便正确执行?
使用闭包(使用匿名函数)而不是字符串,它将为您保留对Session的引用.
Session.Timer = window.setTimeout(function() { TimeoutHandler(Session); }, 1000);
Run Code Online (Sandbox Code Playgroud)
如果你不熟悉闭包,这里有一个简短的介绍.