Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimanakah Saya Boleh Mengakses Nama Fungsi Dari Dalam Fungsi dalam JavaScript?

Bagaimanakah Saya Boleh Mengakses Nama Fungsi Dari Dalam Fungsi dalam JavaScript?

Patricia Arquette
Patricia Arquetteasal
2024-10-28 12:50:30887semak imbas

How Can I Access a Function's Name From Inside the Function in JavaScript?

Menemui Identiti Fungsi dari Dalam

Cabaran untuk mengakses nama fungsi dari dalam fungsi biasanya timbul dalam pengaturcaraan. Dengan JavaScript, beberapa pendekatan wujud untuk menyelesaikan isu ini.

ES6: myFunction.name

Dalam ES6 dan versi yang lebih baru, penyelesaian langsung adalah dengan menggunakan myFunction.name harta benda. Atribut ini memberikan nama fungsi, menjadikannya kaedah yang cekap dan mudah.

ES5: Penghuraian Fungsi

Untuk ES5, fungsi tersuai bernama functionName(fun) boleh dibuat untuk mengekstrak nama daripada perwakilan rentetan fungsi. Ia memangkas awalan "fungsi " dan kurungan, memberikan nama fungsi yang diingini.

Pendekatan Berasaskan Regex

Sebagai alternatif, ungkapan biasa boleh digunakan untuk mendapatkan nama fungsi. Fungsi berasaskan regex oleh nus berikut menawarkan prestasi yang dipertingkatkan:

<code class="javascript">function funName(fun) {
  return fun.toString().match(/function ([^\(]+)[\s\S]*/)[1];
}</code>

Awas dan Pertimbangan

Perlu ambil perhatian bahawa pemencil boleh mengoptimumkan nama fungsi untuk pemampatan yang lebih baik . Jika ini menimbulkan masalah, anda mungkin perlu melaraskan tetapan pengecil anda. Selain itu, Function.caller dan arguments.callee harus dielakkan kerana ia tidak standard dan tidak digalakkan dalam mod ketat.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Nama Fungsi Dari Dalam Fungsi 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