cari
Rumahhujung hadapan webtutorial jsMemahami argumen Object dalam JavaScript

Understanding the arguments Object in JavaScript

Memahami argumen Object dalam JavaScript

JavaScript terkenal dengan fleksibilitinya, membolehkan fungsi mengendalikan pelbagai bilangan hujah dengan lancar. Salah satu permata tersembunyi di sebalik keupayaan ini ialah objek argumen, yang telah menjadi asas dalam mengendalikan parameter fungsi, terutamanya sebelum ciri moden seperti parameter rehat (...args) diperkenalkan. Walaupun ia mungkin tidak begitu biasa dalam pangkalan kod ES6, memahami hujah adalah penting untuk bekerja dengan kod warisan dan mendapatkan pemahaman yang lebih mendalam tentang cara fungsi JavaScript beroperasi.

Apakah Objek hujah?

Objek argumen ialah objek seperti tatasusunan yang boleh diakses dalam semua fungsi bukan anak panah. Ia memegang semua nilai yang dihantar kepada fungsi, tidak kira sama ada fungsi itu mentakrifkan parameter secara eksplisit. Objek ini berguna apabila anda ingin mengakses argumen fungsi secara dinamik atau jika bilangan argumen yang diluluskan berbeza-beza.

Contoh:

function showArguments() {
    console.log(arguments);
}

showArguments(1, 2, 3, "Hello");
// Output: {0: 1, 1: 2, 2: 3, 3: "Hello", length: 4}

Dalam contoh ini, objek argumen mengandungi semua nilai yang dihantar ke showArguments, walaupun fungsi itu tidak mentakrifkan sebarang parameter formal. Objek argumen ialah diindeks sifar, bermakna anda boleh mengakses nilainya seperti tatasusunan (argumen[0], argumen[1], dsb.).

Ciri-ciri Utama argumen Object

  1. Susun Susun tetapi Bukan Susunan: Walaupun ia kelihatan dan berkelakuan serupa dengan tatasusunan, argumen bukanlah tatasusunan yang benar. Ia tidak mempunyai kaedah tatasusunan standard seperti forEach(), map(), atau filter(). Walau bagaimanapun, anda masih boleh mengakses panjang dan elemen individu melalui indeks.
   function testArguments() {
       console.log(arguments.length);  // Number of arguments passed
       console.log(arguments[0]);      // First argument
   }

   testArguments(10, 20, 30);  // Output: 3, 10

Untuk menggunakan kaedah tatasusunan pada argumen, anda boleh menukarnya kepada tatasusunan sebenar menggunakan Array.from() atau operator spread (...):

   function testArguments() {
       const argsArray = Array.from(arguments);
       console.log(argsArray.map(arg => arg * 2));  // Multiply each argument by 2
   }

   testArguments(1, 2, 3);  // Output: [2, 4, 6]
  1. Tiada Sokongan dalam Fungsi Anak Panah: Satu perkara penting yang perlu diambil perhatian ialah objek argumen adalah tidak tersedia dalam fungsi anak panah. Fungsi anak panah mewarisi objek argumen daripada skop lampirannya. Ini menjadikan fungsi anak panah lebih bersih untuk senario di mana anda tidak memerlukan pengendalian hujah dinamik.
   const arrowFunction = () => {
       console.log(arguments);  // ReferenceError: arguments is not defined
   };

   arrowFunction(1, 2);
  1. Gelagat Fungsi Dinamik: Objek argumen amat berguna dalam kod pra-ES6 di mana fungsi diperlukan untuk mengendalikan bilangan pembolehubah argumen tanpa mengisytiharkannya secara eksplisit.

Pertimbangkan contoh klasik fungsi ini yang menambahkan sebarang bilangan argumen yang dihantar kepadanya:

   function sum() {
       let total = 0;
       for (let i = 0; i 



<p>Dalam fungsi sum(), kami menggelungkan semua argumen menggunakan arguments.length dan menjumlahkannya. Sebelum ES6, ini ialah cara utama untuk mengendalikan fungsi variadic (fungsi dengan bilangan argumen yang tidak ditentukan).</p>

<h4>
  
  
  Alternatif Moden: Parameter Rehat
</h4>

<p>Dengan pengenalan ES6, <strong>parameter rehat</strong> (...args) menawarkan cara yang lebih bersih dan intuitif untuk mengendalikan berbilang argumen, selalunya menggantikan objek argumen. Parameter selebihnya menyediakan tatasusunan sebenar argumen, menjadikannya lebih mudah untuk digunakan, kerana ia disertakan dengan semua kaedah tatasusunan.</p>

<p><strong>Contoh:</strong><br>
</p>

<pre class="brush:php;toolbar:false">function sum(...args) {
   return args.reduce((total, num) => total + num, 0);
}

console.log(sum(1, 2, 3));  // Output: 6

Tidak seperti objek argumen, parameter selebihnya secara automatik menukar argumen yang diluluskan kepada tatasusunan sebenar, menjadikannya lebih mudah untuk digunakan dalam JavaScript moden.

Bila Menggunakan hujah

Walaupun kelebihan parameter yang lain, masih terdapat beberapa senario di mana hujah mungkin berguna, terutamanya dalam:

  • Kod Warisan: Banyak pangkalan kod lama masih bergantung pada hujah, jadi memahaminya adalah penting untuk mengekalkan atau memfaktorkan semula projek sedemikian.
  • Keserasian Belakang: Jika anda perlu menyokong persekitaran atau penyemak imbas yang tidak menyokong sepenuhnya ciri ES6, hujah masih menjadi pilihan yang berdaya maju.
  • Bekerja dengan Fungsi yang Tidak Mengisytiharkan Parameter: Jika anda perlu mengakses argumen dalam fungsi tanpa mengubah tandatangannya, argumen menyediakan cara untuk menangkapnya.

Kesimpulan

Objek argumen ialah mekanisme yang berkuasa namun mudah dalam JavaScript, mendayakan gelagat fungsi yang fleksibel, terutamanya apabila bekerja dengan bilangan argumen yang berubah-ubah. Walaupun ia tidak biasa digunakan dalam kod ES6 moden kerana sintaks parameter yang lebih bersih, ia masih merupakan alat yang berharga untuk memahami kerja dalaman fungsi JavaScript dan untuk mengekalkan projek lama.

Untuk butiran lanjut, lihat dokumentasi rasmi MDN pada objek argumen.

Atas ialah kandungan terperinci Memahami argumen Object 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
Enjin JavaScript: Membandingkan PelaksanaanEnjin JavaScript: Membandingkan PelaksanaanApr 13, 2025 am 12:05 AM

Enjin JavaScript yang berbeza mempunyai kesan yang berbeza apabila menguraikan dan melaksanakan kod JavaScript, kerana prinsip pelaksanaan dan strategi pengoptimuman setiap enjin berbeza. 1. Analisis leksikal: Menukar kod sumber ke dalam unit leksikal. 2. Analisis Tatabahasa: Menjana pokok sintaks abstrak. 3. Pengoptimuman dan Penyusunan: Menjana kod mesin melalui pengkompil JIT. 4. Jalankan: Jalankan kod mesin. Enjin V8 mengoptimumkan melalui kompilasi segera dan kelas tersembunyi, Spidermonkey menggunakan sistem kesimpulan jenis, menghasilkan prestasi prestasi yang berbeza pada kod yang sama.

Beyond the Browser: JavaScript di dunia nyataBeyond the Browser: JavaScript di dunia nyataApr 12, 2025 am 12:06 AM

Aplikasi JavaScript di dunia nyata termasuk pengaturcaraan sisi pelayan, pembangunan aplikasi mudah alih dan Internet of Things Control: 1. Pengaturcaraan sisi pelayan direalisasikan melalui node.js, sesuai untuk pemprosesan permintaan serentak yang tinggi. 2. Pembangunan aplikasi mudah alih dijalankan melalui reaktnatif dan menyokong penggunaan silang platform. 3. Digunakan untuk kawalan peranti IoT melalui Perpustakaan Johnny-Five, sesuai untuk interaksi perkakasan.

Membina aplikasi SaaS Multi-penyewa dengan Next.js (Integrasi Backend)Membina aplikasi SaaS Multi-penyewa dengan Next.js (Integrasi Backend)Apr 11, 2025 am 08:23 AM

Saya membina aplikasi SaaS multi-penyewa berfungsi (aplikasi edTech) dengan alat teknologi harian anda dan anda boleh melakukan perkara yang sama. Pertama, apakah aplikasi SaaS multi-penyewa? Aplikasi SaaS Multi-penyewa membolehkan anda melayani beberapa pelanggan dari Sing

Cara Membina Aplikasi SaaS Multi-Tenant dengan Next.js (Integrasi Frontend)Cara Membina Aplikasi SaaS Multi-Tenant dengan Next.js (Integrasi Frontend)Apr 11, 2025 am 08:22 AM

Artikel ini menunjukkan integrasi frontend dengan backend yang dijamin oleh permit, membina aplikasi edtech SaaS yang berfungsi menggunakan Next.Js. Frontend mengambil kebenaran pengguna untuk mengawal penglihatan UI dan memastikan permintaan API mematuhi dasar peranan

JavaScript: meneroka serba boleh bahasa webJavaScript: meneroka serba boleh bahasa webApr 11, 2025 am 12:01 AM

JavaScript adalah bahasa utama pembangunan web moden dan digunakan secara meluas untuk kepelbagaian dan fleksibiliti. 1) Pembangunan front-end: Membina laman web dinamik dan aplikasi satu halaman melalui operasi DOM dan kerangka moden (seperti React, Vue.js, sudut). 2) Pembangunan sisi pelayan: Node.js menggunakan model I/O yang tidak menyekat untuk mengendalikan aplikasi konkurensi tinggi dan masa nyata. 3) Pembangunan aplikasi mudah alih dan desktop: Pembangunan silang platform direalisasikan melalui reaktnatif dan elektron untuk meningkatkan kecekapan pembangunan.

Evolusi JavaScript: Trend Semasa dan Prospek Masa DepanEvolusi JavaScript: Trend Semasa dan Prospek Masa DepanApr 10, 2025 am 09:33 AM

Trend terkini dalam JavaScript termasuk kebangkitan TypeScript, populariti kerangka dan perpustakaan moden, dan penerapan webassembly. Prospek masa depan meliputi sistem jenis yang lebih berkuasa, pembangunan JavaScript, pengembangan kecerdasan buatan dan pembelajaran mesin, dan potensi pengkomputeran IoT dan kelebihan.

Demystifying JavaScript: Apa yang berlaku dan mengapa pentingDemystifying JavaScript: Apa yang berlaku dan mengapa pentingApr 09, 2025 am 12:07 AM

JavaScript adalah asas kepada pembangunan web moden, dan fungsi utamanya termasuk pengaturcaraan yang didorong oleh peristiwa, penjanaan kandungan dinamik dan pengaturcaraan tak segerak. 1) Pengaturcaraan yang didorong oleh peristiwa membolehkan laman web berubah secara dinamik mengikut operasi pengguna. 2) Penjanaan kandungan dinamik membolehkan kandungan halaman diselaraskan mengikut syarat. 3) Pengaturcaraan Asynchronous memastikan bahawa antara muka pengguna tidak disekat. JavaScript digunakan secara meluas dalam interaksi web, aplikasi satu halaman dan pembangunan sisi pelayan, sangat meningkatkan fleksibiliti pengalaman pengguna dan pembangunan silang platform.

Adakah Python atau JavaScript lebih baik?Adakah Python atau JavaScript lebih baik?Apr 06, 2025 am 12:14 AM

Python lebih sesuai untuk sains data dan pembelajaran mesin, manakala JavaScript lebih sesuai untuk pembangunan front-end dan penuh. 1. Python terkenal dengan sintaks ringkas dan ekosistem perpustakaan yang kaya, dan sesuai untuk analisis data dan pembangunan web. 2. JavaScript adalah teras pembangunan front-end. Node.js menyokong pengaturcaraan sisi pelayan dan sesuai untuk pembangunan stack penuh.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa