Bolehkah Panggilan Fungsi Berasaskan Rentetan dengan setTimeout Dijustifikasikan?

DDD
Lepaskan: 2024-10-20 07:42:02
asal
783 orang telah melayarinya

Can String-Based Function Calls with setTimeout Be Justified?

Melalui Rentetan ke setTimeout: Sebab Pengelakan dan Pengecualian

Melalukan rentetan ke setTimeout atau rakan sejawatannya setInterval biasanya tidak disukai apabila devido kebimbangan untuk melaksanakan dalam skop global, isu prestasi yang berpotensi dan kelemahan keselamatan. Alternatif yang disyorkan ialah menggunakan fungsi tanpa nama sebagai hujah pertama.

Walau bagaimanapun, mungkin terdapat rahmat menyelamatkan dalam situasi tertentu. Jika pengaturcara berhasrat untuk mengakses fungsi atau pembolehubah yang wujud dalam skop global tetapi telah ditindih secara setempat, mereka boleh mempertimbangkan untuk menggunakan sintaks rentetan yang tidak digunakan lagi. Namun begitu, pendekatan ini disifatkan sebagai amalan pengaturcaraan yang lemah kerana potensi untuk membayangi pembolehubah.

Dalam kebanyakan kes, adalah mungkin untuk mengakses pembolehubah global sebagai sifat objek tetingkap (cth., window.globalVar), menjadikannya tidak perlu menggunakan panggilan fungsi berasaskan rentetan. Oleh itu, sangat tidak mungkin untuk menghadapi senario di mana menggunakan rentetan sebagai argumen pertama untuk setTimeout atau setInterval akan benar-benar bermanfaat.

Secara sejarah, ketersediaan tunggal rentetan kod sebagai hujah untuk fungsi ini berpunca daripada Had JavaScript 1.0. Pengenalan rujukan objek Fungsi sebagai hujah hanya berlaku dengan JavaScript 1.2. Mengekalkan keserasian dengan penyemak imbas dan skrip lama menghalang pembangun daripada menghapuskan sepenuhnya panggilan berasaskan rentetan. Dengan memahami kedua-dua kaveat dan pengecualian yang jarang berlaku, pengaturcara boleh membuat keputusan termaklum apabila menulis kod yang melibatkan setTimeout dan setInterval.

Atas ialah kandungan terperinci Bolehkah Panggilan Fungsi Berasaskan Rentetan dengan setTimeout Dijustifikasikan?. 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
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!