使用JavaScript 在特定延遲後執行腳本
當尋找類似於jQuery 的「delay()」或「wait()」的JavaScript 方法時允許延遲腳本執行的函數,「setTimeout()」作為可靠的解決方案出現。
但是,當稍後呼叫帶有參數的函數時,必須使用匿名函數呼叫。
雖然透過省略函數名稱後面的括號來將函數作為參數傳遞給以後呼叫是很誘人的,但這種方法有一個警告:
var a = "world"; setTimeout(alert("Hello" + a), 2000); // Displays "Hello world" immediately
為了確保延遲執行,可以使用函數名稱(如Flubba 所示)或匿名函數,特別是在傳遞參數時:
var a = "world"; setTimeout(function() { alert("Hello" + a); }, 2000); // Displays "Hello world" after 2 seconds
但是,這種替代方案有一個限制:變數可能在延遲期間發生變化,從而改變函數的輸出。要保留原始變數值,請使用回調函數:
function callback(a) { return function() { alert("Hello" + a); } } var a = "world"; setTimeout(callback(a), 2000); a = "Stack Overflow"; // This change won't affect the delayed function
透過在回調函數中包含原始變數值,可以確保延遲呼叫以預期值發生,即使它在同時。
以上是如何使用 JavaScript 在特定延遲後執行腳本並防止變數值變更?的詳細內容。更多資訊請關注PHP中文網其他相關文章!