首頁  >  文章  >  web前端  >  setTimeout 中棄用字串參數是否有例外?

setTimeout 中棄用字串參數是否有例外?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-20 07:37:29970瀏覽

Are There Exceptions to the Deprecation of String Parameters in setTimeout?

棄用向 setTimeout 傳遞字串:是否有異常?

儘管普遍認為向 setTimeout 傳遞字串是不可取的,但在某些情況下可能會出現這種情況練習是有趣的。這就引出了一個問題:是否有違反此約定的合法理由?

拒絕字串參數的傳統原因是它們在全域範圍內執行,從而帶來效能挑戰和潛在的安全漏洞。現代語法避開了這種方法,而是將函數作為參數傳遞給 setTimeout:

setTimeout(function() {
    doSomething(someVar);
}, 10000);

考慮函數或變數全域存在但在本地被覆蓋的場景。開發人員可能會考慮使用已棄用的語法來存取全域實例:

setTimeout('doSomething(someVar)', 10000);

但是,透過 window 物件存取全域變數(例如 window.globalVar)消除了此異常的需要。

setTimeout 和 setInterval 中字串參數的允許可能是由於它們的歷史優先權。最初,這些函數只接受包含要執行的程式碼的字串。後來引入了 Function 物件作為有效參數。追溯禁止字串參數會破壞現有程式碼。

以上是setTimeout 中棄用字串參數是否有例外?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn