Rumah  >  Artikel  >  hujung hadapan web  >  Adakah Terdapat Pengecualian untuk Penamatan Parameter Rentetan dalam setTimeout?

Adakah Terdapat Pengecualian untuk Penamatan Parameter Rentetan dalam setTimeout?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-20 07:37:29966semak imbas

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

Pemansuhan Rentetan Melepasi kepada setTimeout: Adakah Pernah Ada Pengecualian?

Walaupun konsensus meluas bahawa menghantar rentetan kepada setTimeout adalah tidak diingini, mungkin terdapat keadaan di mana ini latihan terhibur. Ini menimbulkan persoalan: adakah terdapat sebab yang sah untuk melanggar konvensyen ini?

Sebab konvensional untuk menolak parameter rentetan adalah kerana ia dilaksanakan dalam skop global, menimbulkan cabaran prestasi dan potensi kelemahan keselamatan. Sintaks moden mengelak pendekatan ini memihak kepada menghantar fungsi sebagai argumen untuk setTimeout:

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

Pertimbangkan senario di mana fungsi atau pembolehubah wujud secara global tetapi ditindih secara setempat. Pembangun mungkin mempertimbangkan menggunakan sintaks yang ditamatkan untuk mengakses contoh global:

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

Walau bagaimanapun, mengakses pembolehubah global melalui objek tetingkap (cth., window.globalVar) menghapuskan keperluan untuk pengecualian ini.

Elaun parameter rentetan dalam setTimeout dan setInterval mungkin disebabkan oleh keutamaan sejarahnya. Pada mulanya, fungsi ini hanya menerima rentetan yang mengandungi kod untuk dilaksanakan. Pengenalan objek Fungsi sebagai hujah yang sah datang kemudian. Tidak membenarkan parameter rentetan secara retroaktif akan memecahkan kod sedia ada.

Atas ialah kandungan terperinci Adakah Terdapat Pengecualian untuk Penamatan Parameter Rentetan dalam setTimeout?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn