Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Mendapatkan Nama Fungsi Sedang Berjalan dalam JavaScript?

Bagaimana untuk Mendapatkan Nama Fungsi Sedang Berjalan dalam JavaScript?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-21 15:27:03516semak imbas

How to Get the Name of the Currently Running Function in JavaScript?

Mendapatkan Nama Fungsi Sedang Berjalan dalam JavaScript

Dalam JavaScript, anda mungkin menghadapi situasi di mana anda memerlukan akses kepada nama fungsi yang sedang dilaksanakan. Walaupun ini mungkin bukan senario biasa, terdapat kes penggunaan tertentu yang mungkin memerlukan maklumat ini.

Arguments.callee

Dalam versi JavaScript sebelum ES5, argumen Harta .callee menyediakan cara untuk mendapatkan semula fungsi aktif. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa harta tanah ini telah ditamatkan dan memihak kepada alternatif yang lebih selamat. Menggunakan arguments.callee mungkin membawa kepada tingkah laku yang tidak dijangka atau malah ralat dalam persekitaran JavaScript moden.

Menghuraikan Nama Fungsi

Jika anda mesti mendapatkan nama fungsi, anda boleh berbuat demikian dengan menganalisis output arguments.callee.toString(). Walau bagaimanapun, ambil perhatian bahawa rentetan yang dikembalikan termasuk maklumat tambahan seperti kurungan kerinting dan kurungan. Untuk mengekstrak nama fungsi, anda perlu melakukan beberapa penghuraian.

Sebagai contoh:

<code class="js">function DisplayMyName() {
  var myName = arguments.callee.toString();
  myName = myName.substr('function '.length);
  myName = myName.substr(0, myName.indexOf('('));

  alert(myName);
}</code>

Dalam ES5 dan ke atas, sifat arguments.callee telah dialih keluar sama sekali, menghapuskan keupayaan untuk akses nama fungsi semasa secara langsung. Akibatnya, adalah disyorkan untuk mengelak daripada bergantung pada ciri ini dalam amalan pembangunan moden.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nama Fungsi Sedang Berjalan dalam JavaScript?. 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