1. Apa itu argumen
Argumen adalah objek bawaan dalam JavaScript. Semua pustaka fungsi JS utama menggunakan objek argumen. Oleh karena itu, objek agrumen diperlukan agar programmer JavaScript terbiasa.
Semua fungsi memiliki objek argumen sendiri, yang mencakup parameter yang akan dipanggil oleh fungsi. Ini bukan array, jika tipe argumen digunakan, pengembalian adalah 'objek'. Meskipun kita dapat memanggil argumen dengan memanggil data. Misalnya, metode panjang, dan indeks. Tetapi objek dorongan dan pop array tidak berlaku.
2. Buat fungsi yang fleksibel
Tampaknya objek argumen sangat terbatas untuk digunakan, tetapi pada kenyataannya itu adalah objek yang sangat berguna. Anda dapat menggunakan objek argumen untuk mengaktifkan fungsi untuk memanggil jumlah parameter yang tidak terbatas. Ada fungsi yang diformat di pustaka Base2 Dean Edwards yang menunjukkan fleksibilitas ini.
Salin kode sebagai berikut: format fungsi (string) {
var args = argumen;
var pola = regexp baru ("%([1-" + argumen.length + "])", "g");
return string (string) .replace (pola, function (match, index) {
return args [index];
});
};
Kami menyediakan string template di mana Anda dapat menambahkan placeholder ke nilai pengembalian menggunakan "%1" ke "%9". Kemudian berikan sembilan parameter lain untuk dimasukkan.
Salinan kode adalah sebagai berikut: format ("dan %1 ingin tahu yang %2 Anda %3 ″," kertas "," kemeja "," pakai ");
Kode di atas akan kembali: dan surat -surat ingin tahu bajunya yang Anda pakai ".
Ada sesuatu yang perlu kita perhatikan. Saat mendefinisikan fungsi, kita hanya menentukan satu parameter, string. JavaScript memungkinkan kita untuk meneruskan sejumlah parameter ke dalam suatu fungsi, tidak peduli bagaimana kita mendefinisikan fungsi ini. Objek argumen diizinkan untuk ini.
3. Konversi argumen objek menjadi array nyata
Meskipun objek argumen bukan array JavaScript yang nyata, kami dapat dengan mudah mengubahnya menjadi data standar dan kemudian melakukan operasi array.
Salinan kode adalah sebagai berikut: var args = array.prototype.slice.call (argumen);
Sekarang variabel ini ARGS berisi objek array JavaScript standar yang berisi semua parameter fungsi.
4. Buat fungsi melalui objek argumen yang telah ditetapkan
Objek Argumen memungkinkan kita untuk menjalankan semua jenis metode JavaScript. Berikut adalah definisi fungsi Makefunc. Fungsi ini memungkinkan kami untuk memberikan referensi fungsi dan semua parameter fungsi ini. Ini akan mengembalikan fungsi anonim untuk memanggil fungsi yang Anda tentukan, dan juga memberikan parameter yang terlampir pada panggilan fungsi anonim.
Salin kode sebagai berikut: function makefunc () {
var args = array.prototype.slice.call (argumen);
var func = args.shift ();
return function () {
return func.Apply (null, args.concat (array.prototype.slice.call (argumen)));
};
}
Objek argumen pertama memberikan Makefunc referensi ke fungsi yang ingin Anda hubungi. Dia menghapusnya dari array argumen. Kemudian Makefunc mengembalikan fungsi anonim untuk menjalankan metode yang ditentukan.
Argumen aplikasi pertama menunjuk ke ruang lingkup panggilan fungsi, terutama ditunjukkan oleh bagian -bagian utama fungsi. Mari kita jaga ini sebagai nol terlebih dahulu. Argumen kedua adalah array yang akan dikonversi menjadi objek argumen untuk fungsi ini. Makefunc menggabungkan nilai array asli ke dalam objek argumen dan array fungsi yang dipanggil.
Anda perlu mengeluarkan templat yang selalu memiliki posisi yang sama sehingga Anda tidak selalu memanggil fungsi format setiap kali Anda merujuk ke template. Anda dapat menggunakan fungsi umum Makefunc untuk mengembalikan fungsi yang dapat memanggil format dan secara otomatis melengkapi templat.
Salinan kode adalah sebagai berikut: var majortom = makefunc (format, "Ini adalah tom utama untuk kontrol ground. Saya %1.");
Anda dapat memanggil fungsi Majortom seperti ini:
Salinan kode adalah sebagai berikut: Majortom ("Melangkah Melalui Pintu");
Majortom ("mengambang dengan cara yang paling aneh");
Setiap kali Anda memanggil Majortom, itu akan memanggil fungsi format dan argumen pertama pada saat yang sama, dan template yang sudah ditulis. Maka itu akan kembali
Salin kode sebagai berikut: "Ini adalah tom utama untuk kontrol ground. Saya melangkah melewati pintu."
“Ini adalah tom utama untuk kontrol tanah.
5. Buat fungsi yang merujuk itu sendiri
Anda mungkin berpikir ini keren, tetapi ada lebih banyak kejutan untuk argumen. Dia memiliki fitur berguna lainnya: metode Callee. Argumen.Callee mencakup referensi ke fungsi untuk membuat objek argumen. Jadi bagaimana cara menggunakannya?
Metode argumen.
Ulangi adalah fungsi yang membawa referensi fungsi dan dua angka. Angka pertama adalah berapa kali fungsi disebut, dan angka kedua adalah interval antara setiap panggilan, dalam milidetik.
Salinan kode adalah sebagai berikut: function repeat (fn, kali, tunda) {
return function () {
if (Times> 0) {
fn.Apply (null, argumen);
var args = array.prototype.slice.call (argumen);
var self = argumen.callee;
setTimeout (function () {self.Apply (null, args)}, tunda);
}
};
}
Fungsi ulang menggunakan metode argumen. Callee untuk mendapatkan referensi dari diri variabel untuk menunjuk ke fungsi yang menjalankan instruksi asli. Dengan cara ini, fungsi anonim dapat dipanggil lagi.
Saya memiliki fungsi super singkat yang meng -host string dan menjalankan metode peringatan.
Salin kode sebagai berikut: function comms (s) {
Peringatan;
}
Namun, saya ingin membuat versi khusus yang melaluinya saya dapat mengulangi tindakan ini tiga kali, setiap interval waktu 2 detik. Lalu, kita bisa
Salinan kode adalah sebagai berikut: var Somethingwrong = ulangi (comms, 3, 2000);
Somethingwrong ("Bisakah Anda mendengar saya, Mayor Tom?");
Hasil dari memanggil fungsi Somethingwrong adalah mengulangi tindakan ini tiga kali, dengan setiap interval peringatan 2 detik.
Meskipun argumen tidak sering digunakan dan agak aneh, mereka penuh kejutan dan layak dipelajari.