Rumah  >  Artikel  >  hujung hadapan web  >  JavaScript arguments object application example_javascript kemahiran

JavaScript arguments object application example_javascript kemahiran

WBOY
WBOYasal
2016-05-16 16:36:29947semak imbas

objek hujah

Dalam kod fungsi, menggunakan argumen objek khas, pembangun boleh mengakses nama parameter tanpa menamakannya secara eksplisit.

Sebagai contoh, dalam fungsi sayHi(), parameter pertama ialah mesej. Nilai ini juga boleh diakses dengan argumen[0], iaitu nilai argumen pertama (argumen pertama berada pada kedudukan 0, argumen kedua berada pada kedudukan 1 dan seterusnya).

Oleh itu, fungsi boleh ditulis semula tanpa menamakan parameter secara eksplisit:

function sayHi() {
if (arguments[0] == "bye") {
return;
}

alert(arguments[0]);
}

Bilangan parameter pengesanan

Anda juga boleh menggunakan objek argumen untuk mengesan bilangan parameter fungsi, hanya rujuk argumen properti.length.

Kod berikut akan mengeluarkan bilangan parameter yang digunakan dalam setiap panggilan fungsi:

function howManyArgs() {
alert(arguments.length);
}

howManyArgs("string", 45);
howManyArgs();
howManyArgs(12);

Kod di atas akan memaparkan "2", "0" dan "1" dalam urutan.

Nota: Tidak seperti bahasa pengaturcaraan lain, ECMAScript tidak mengesahkan sama ada bilangan parameter yang dihantar ke fungsi adalah sama dengan bilangan parameter yang ditentukan oleh fungsi tersebut. Fungsi yang ditentukan oleh pembangun boleh menerima sebarang bilangan argumen (sehingga 255, mengikut dokumentasi Netscape) tanpa menimbulkan sebarang ralat. Sebarang hujah yang hilang akan dihantar ke fungsi sebagai tidak ditentukan, dan fungsi tambahan akan diabaikan.
Simulasikan lebihan beban

Gunakan objek argumen untuk menentukan bilangan parameter yang dihantar ke fungsi untuk mensimulasikan lebihan fungsi:

function doAdd() {
if(arguments.length == 1) {
alert(arguments[0] + 5);
} else if(arguments.length == 2) {
alert(arguments[0] + arguments[1]);
}
}

doAdd(10); //Output "15"
doAdd(40, 20); //Output "60"

Apabila hanya terdapat satu parameter, fungsi doAdd() menambah 5 pada parameter. Jika terdapat dua parameter, dua parameter itu ditambah dan jumlahnya dikembalikan. Jadi, doAdd(10) mengeluarkan "15", manakala doAdd(40, 20) mengeluarkan "60".

Walaupun tidak sehebat beban berlebihan, ia sudah cukup untuk mengatasi had ECMAScript ini.

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