[英]Javascript - Pass a function with arguments as an argument
我正在清理一些腳本錯誤並且有一個微妙的困境。
考慮這行代碼:
Session.Timer = window.setTimeout("TimeoutHandler(Session)", 1000);
這將不起作用,因為當 Timeout 嘗試執行TimeoutHandler(Session)
時,它將不知道 Session 變量是什么(超出范圍)。
有沒有辦法將Session
“值”轉換為字符串或數字,以便正確執行?
使用閉包(使用匿名函數)而不是字符串,它將為您保留對 Session 的引用。
Session.Timer = window.setTimeout(function() { TimeoutHandler(Session); }, 1000);
如果你對閉包不熟悉,這里有一個簡短的介紹。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.