Rumah > Artikel > hujung hadapan web > Bagaimana untuk memanggil fungsi dengan bahagian yang dilampirkan pada parameter dalam JavaScript?
Dalam JavaScript, anda boleh memanggil fungsi dengan menghantar parameter kepadanya. Walau bagaimanapun, kadangkala perlu untuk memanggil fungsi dengan beberapa parameter yang telah diisi. Ini boleh dilakukan menggunakan teknik yang dipanggil aplikasi fungsi separa.
Aplikasi fungsi separa ialah cara untuk mencipta fungsi baharu dengan "pra-populasi" beberapa parameter fungsi sedia ada. Ini berguna apabila anda ingin mencipta fungsi baharu yang serupa dengan fungsi sedia ada tetapi mempunyai beberapa parameter yang ditetapkan.
Sebagai contoh, katakan anda mempunyai fungsi yang mengira luas segi empat tepat. Fungsi ini mengambil dua parameter - lebar dan ketinggian segi empat tepat.
Sekarang bayangkan anda ingin mencipta fungsi baharu untuk mengira luas segi empat sama. Fungsi baharu ini akan serupa dengan fungsi sedia ada, tetapi ia hanya memerlukan satu parameter - sisi segi empat sama.
Di sinilah apl fungsi separa masuk. Anda boleh menggunakan apl fungsi separa untuk mencipta fungsi baharu yang merupakan versi "separa" bagi fungsi sedia ada. Fungsi baharu ini akan mempunyai parameter pertama (lebar) telah ditetapkan, dan hanya memerlukan parameter kedua (ketinggian).
Terdapat beberapa cara berbeza untuk menggunakan aplikasi fungsi separa dalam JavaScript.
Kaedah yang paling biasa ialah menggunakan kaedah bind().
Kaedahbind() ialah cara untuk mencipta fungsi baharu daripada fungsi sedia ada. Kaedah bind() mengambil dua parameter: fungsi yang akan diikat, dan nilai yang akan diikat pada argumen pertama fungsi tersebut.
Sebagai contoh, katakan anda mempunyai fungsi berikut -
function add(a, b) { return a + b; }
Anda boleh menggunakan kaedah bind() untuk mencipta fungsi baharu dengan set parameter pertama (a).
var add5 = add.bind(null, 5);
Kini fungsi add5 boleh digunakan seperti ini -
<!doctype html> <html> <head> <title>Examples</title> </head> <body> <div id="result"></div> <script> function add(a, b) { return a + b; } var add5 = add.bind(null, 5); document.getElementById("result").innerHTML = add5(10) </script> </body> </html>
Seperti yang anda lihat, parameter pertama (5) ditetapkan dan parameter kedua (10) dihantar ke fungsi add5.
Cara lain untuk menggunakan aplikasi fungsi separa ialah mencipta fungsi yang menerima fungsi dan nilai sedia ada dan mengembalikan fungsi baharu dengan argumen pertama set fungsi sedia ada.
Sebagai contoh, anda boleh menulis fungsi seperti ini -
function bind(fn, val) { return function() { return fn.apply(null, [val].concat(Array.prototype.slice.call(arguments))); }; }
Fungsi ini mengambil fungsi dan nilai sedia ada serta mengembalikan fungsi baharu yang nilainya terikat pada hujah pertama fungsi sedia ada.
Sebagai contoh, anda boleh menggunakan fungsi bind() untuk mencipta fungsi baharu seperti ini -
var add5 = bind(add, 5);
Kini fungsi add5 boleh digunakan seperti ini -
<!doctype html> <html> <head> <title>Examples</title> </head> <body> <div id="result"></div> <script> function add(a, b) { return a + b; } function bind(fn, val) { return function() { return fn.apply(null, [val].concat(Array.prototype.slice.call(arguments))); }; } var add5 = add.bind(add, 5); document.getElementById("result").innerHTML = add5(10) </script> </body> </html>
Seperti yang anda lihat, parameter pertama (5) ditetapkan dan parameter kedua (10) dihantar ke fungsi add5.
Aplikasi fungsi separa ialah teknik yang berguna untuk mencipta fungsi baharu daripada fungsi sedia ada. Ia boleh digunakan untuk mencipta fungsi yang serupa dengan fungsi sedia ada, tetapi dengan beberapa parameter telah ditetapkan.
Atas ialah kandungan terperinci Bagaimana untuk memanggil fungsi dengan bahagian yang dilampirkan pada parameter dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!