Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Menentukan Butiran Fungsi Pemanggil dalam JavaScript?

Bagaimana untuk Menentukan Butiran Fungsi Pemanggil dalam JavaScript?

Linda Hamilton
Linda Hamiltonasal
2024-10-20 21:53:02239semak imbas

How to Determine the Details of the Caller Function in JavaScript?

Menemui Butiran Fungsi Pemanggil dalam JavaScript

Menentukan asal panggilan fungsi boleh memberikan cerapan berharga untuk penyahpepijatan dan analisis. Artikel ini meneroka cara untuk mendapatkan nombor talian dan URL sumber fungsi pemanggil dalam JavaScript.

Mendapatkan Nombor Talian Pemanggil

Kod yang disediakan dengan berkesan mendapatkan semula nama fungsi pemanggil menggunakan arguments.callee.objek pemanggil. Walau bagaimanapun, untuk mendapatkan nombor baris memerlukan pendekatan yang berbeza. Satu kaedah melibatkan penggunaan objek Ralat:

<code class="js">function getErrorObject() {
  try {
    throw Error('');
  } catch (err) {
    return err;
  }
}

var err = getErrorObject();
var caller_line = err.stack.split("\n")[4];
var index = caller_line.indexOf("at ");
var clean = caller_line.slice(index + 2, caller_line.length);</code>

Harta tindanan objek Ralat mengandungi surih tindanan yang merangkumi nombor baris dan URL sumber bagi panggilan fungsi yang membawa kepada ralat. Dengan menghuraikan rentetan ini, anda boleh mengekstrak nombor baris fungsi pemanggil.

Mendapatkan semula URL Sumber Pemanggil

Begitu juga, URL sumber boleh diperoleh daripada timbunan sifat objek Ralat:

<code class="js">var caller_url = err.stack.split("\n")[4];
var index = caller_url.indexOf("(");
var clean = caller_url.slice(index + 1, caller_url.length - 1);</code>

Bahagian surih tindanan antara kurungan mengandungi URL sumber fungsi pemanggil.

Atas ialah kandungan terperinci Bagaimana untuk Menentukan Butiran Fungsi Pemanggil 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