Adakah Terdapat Pengecualian untuk Penamatan Parameter Rentetan dalam setTimeout?

Mary-Kate Olsen
Lepaskan: 2024-10-20 07:37:29
asal
962 orang telah melayarinya

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);
Salin selepas log masuk

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);
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!