JavaScript ialah bahasa berorientasikan objek peringkat tinggi yang digunakan secara meluas dalam pembangunan web, pembangunan APP mudah alih, aplikasi desktop dan bidang lain. Semasa proses pembangunan, kita selalunya perlu mendapatkan badan fungsi untuk melaksanakan beberapa operasi dinamik. Artikel ini akan memperkenalkan cara mendapatkan badan fungsi dalam JavaScript.
Fungsi dalam JavaScript
Dalam JavaScript, fungsi adalah warga kelas pertama. Fungsi boleh diberikan kepada pembolehubah, diluluskan sebagai argumen kepada fungsi lain, ditakrifkan dalam fungsi, dsb. Terdapat dua cara untuk mentakrifkan fungsi:
1 Pengisytiharan fungsi
Pengisytiharan fungsi diisytiharkan melalui kata kunci fungsi, dinamakan dengan nama fungsi (pengecam), diikuti dengan sepasang kurungan dan kerinting. pendakap, kurungan boleh mengandungi senarai parameter, dan pendakap kerinting mengandungi badan fungsi.
Contohnya:
function add(a, b) { return a + b; }
2. Ungkapan fungsi
Ungkapan fungsi ialah bentuk yang mentakrifkan fungsi sebagai nilai diperuntukkan kepada Pembolehubah, sifat, dsb.
Contohnya:
let add = function(a, b) { return a + b; };
Dapatkan badan fungsi
Salah satu cara untuk mendapatkan badan fungsi ialah menggunakan kaedah toString() bagi objek Fungsi. Kaedah ini mengembalikan rentetan kod sumber fungsi. Rentetan kod sumber fungsi termasuk nama fungsi, senarai parameter dan badan fungsi.
Contohnya:
function add(a, b) { return a + b; } console.log(add.toString()); // "function add(a, b) { return a + b; }"
Fungsi yang ditakrifkan menggunakan ungkapan fungsi juga boleh menggunakan kaedah toString() untuk mendapatkan badan fungsi.
Contohnya:
let add = function(a, b) { return a + b; }; console.log(add.toString()); // "function(a, b) { return a + b; }"
Had penggunaan kaedah toString() untuk mendapatkan badan fungsi
Terdapat beberapa had untuk menggunakan kaedah toString() untuk mendapatkan badan fungsi, seperti:
1. Badan fungsi sesetengah fungsi terbina dalam tidak boleh diperolehi, seperti alert(), Math.max() dan fungsi terbina dalam yang lain.
2. Tidak dapat memperoleh badan fungsi yang ditakrifkan menggunakan sintaks fungsi anak panah.
Contohnya:
let add = (a, b) => a + b; console.log(add.toString()); // "() => a + b"
3 Badan fungsi yang dibalut oleh objek Proksi.
Contohnya:
let add = function(a, b) { return a + b; }; let proxy = new Proxy(add, {}); console.log(proxy.toString()); // "function(a, b) { return a + b; }"
4 Badan fungsi yang dicipta secara dinamik menggunakan kaedah eval() tidak boleh diperolehi.
Contohnya:
let add = eval("function(a, b) { return a + b; }"); console.log(add.toString()); // "function(a, b) { return a + b; }"
Ringkasan
Fungsi dalam JavaScript sangat fleksibel dan boleh ditakrifkan serta digunakan dalam pelbagai cara. Anda boleh mendapatkan badan fungsi dengan mudah menggunakan kaedah toString() bagi objek Fungsi, tetapi anda perlu memberi perhatian kepada batasannya. Dalam pembangunan sebenar, pilih cara yang sesuai untuk mengendalikan badan fungsi mengikut keperluan.
Atas ialah kandungan terperinci Bagaimana untuk mendapatkan badan fungsi dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!