javascript tidak terbeban

WBOY
Lepaskan: 2023-05-12 10:47:06
asal
453 orang telah melayarinya

JavaScript ialah bahasa pengaturcaraan peringkat tinggi yang digunakan secara meluas dalam pembangunan web dengan sintaks yang fleksibel dan fungsi yang berkuasa. Walau bagaimanapun, tidak seperti bahasa pengaturcaraan lain, JavaScript tidak membebankan konsep ini. Jadi mengapa JavaScript tidak terbeban? Dalam artikel ini, kami akan menganalisis masalah ini dan meneroka cara melaksanakan fungsi fungsi terlampau beban dalam JavaScript.

Pertama sekali, apakah itu terlebih muatan? Dalam beberapa bahasa pengaturcaraan lain, beban berlebihan merujuk kepada mentakrifkan berbilang fungsi dengan nama yang sama tetapi senarai parameter yang berbeza dalam skop yang sama. Apabila fungsi dipanggil, pengkompil memilih fungsi yang betul berdasarkan bilangan dan jenis argumen yang dihantar ke fungsi.

Walau bagaimanapun, dalam JavaScript, parameter fungsi ditaip secara dinamik dan boleh ditukar pada bila-bila masa mengikut keperluan. Oleh itu, mentakrifkan berbilang fungsi dengan nama yang sama dalam JavaScript adalah tidak perlu dan tidak berkesan.

Selain itu, fungsi dalam JavaScript adalah berasaskan objek dan fungsi boleh dianggap sebagai sifat objek. Oleh itu, apabila anda mentakrifkan fungsi ia sebenarnya merupakan atribut manakala beban berlebihan merujuk kepada mentakrifkan atribut fungsi berbilang. Oleh kerana sifat objek dalam JavaScript mesti mempunyai nama unik, anda tidak boleh menentukan berbilang sifat fungsi dengan nama yang sama dalam objek yang sama.

Jadi, bagaimanakah anda melaksanakan fungsi dengan senarai parameter yang berbeza dalam JavaScript tanpa menggunakan lebihan beban? Penyelesaian biasa adalah untuk menyemak jenis parameter yang dihantar ke fungsi dan melakukan tindakan yang berbeza bergantung pada parameter yang diluluskan.

Sebagai contoh, katakan anda perlu melaksanakan fungsi yang menerima dua nombor sebagai hujah dan mengembalikan jumlah atau produknya. Dalam JavaScript, anda boleh menulis kod berikut untuk mencapai ini:

function calculate(num1, num2) { if (typeof num1 === 'number' && typeof num2 === 'number') { return num1 + num2; } else if (typeof num1 === 'number' && typeof num2 === 'string') { return num1 + parseInt(num2); } else if (typeof num1 === 'string' && typeof num2 === 'number') { return parseInt(num1) + num2; } else { return 0; } }
Salin selepas log masuk

Dalam kod di atas, kami menyemak jenis parameter yang dihantar ke fungsi dan melakukan tindakan yang berbeza berdasarkan parameter. Jika kedua-dua hujah ialah nombor, jumlahnya dikembalikan. Jika salah satu argumen ialah rentetan, ia ditukar kepada nombor sebelum penambahan. Dengan cara ini kita boleh melaksanakan fungsi dengan senarai parameter yang berbeza.

Selain itu, fungsi variadic dalam JavaScript juga boleh menyelesaikan masalah yang serupa. Fungsi variadic ialah fungsi yang boleh menerima sebarang bilangan argumen. Dalam JavaScript, anda boleh menggunakan baki operator "..." untuk mentakrifkan fungsi variadik. Sebagai contoh, kod berikut mentakrifkan fungsi yang menerima sebarang bilangan nombor sebagai argumen:

function sum(...args) { return args.reduce((total, current) => total + current, 0); }
Salin selepas log masuk

Dalam kod di atas, kami menggunakan operator baki "..." untuk mentakrifkan hujah variadic "args". Kami menjumlahkan semua hujah melalui kaedah Array.reduce() dan mengembalikan jumlahnya. Menggunakan fungsi variadic, anda boleh melaksanakan fungsi dengan mudah dengan senarai argumen yang berbeza dalam JavaScript.

Ringkasnya, JavaScript tidak mempunyai konsep lebihan muatan, kerana mentakrifkan berbilang fungsi dengan nama yang sama dalam JavaScript adalah tidak perlu dan tidak sah. Masalah dengan fungsi dengan senarai parameter yang berbeza boleh diselesaikan dengan menyemak jenis parameter yang dihantar ke fungsi atau menggunakan fungsi variadik. Walaupun pendekatan ini mungkin tidak intuitif dan mudah seperti beban berlebihan, prinsip asas melaksanakan polimorfisme dalam JavaScript masih sah.

Atas ialah kandungan terperinci javascript tidak terbeban. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!