Parameter fungsi JavaScript
Fungsi JavaScript tidak melakukan sebarang semakan pada nilai parameter.
Fungsi parameter eksplisit (Parameter) dan parameter tersirat (Argumen)
Dalam tutorial sebelumnya, kita telah mempelajari tentang parameter eksplisit fungsi:
// Kod untuk dilaksanakan...
}
Parameter fungsi eksplisit disenaraikan apabila fungsi ditakrifkan.
Parameter fungsi tersirat ialah nilai sebenar yang dihantar kepada fungsi apabila fungsi dipanggil.
Peraturan Parameter
Apabila fungsi JavaScript ditakrifkan, parameter yang dipaparkan tidak menyatakan jenis data.
Fungsi JavaScript tidak melakukan semakan jenis pada parameter tersirat.
Fungsi JavaScript tidak mengesan bilangan parameter tersirat.
Parameter lalai
Jika fungsi dipanggil tanpa memberikan parameter tersirat, parameter akan ditetapkan secara lalai kepada: tidak ditentukan
Kadangkala ini Boleh Diterima, tetapi disyorkan untuk menetapkan nilai lalai untuk parameter:
Instance
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p>设置参数的默认值。</p> <p id="demo"></p> <script> function myFunction(x, y) { if (y === undefined) { y = 0; } return x * y; } document.getElementById("demo").innerHTML = myFunction(4); </script> </body> </html>
Jalankan instance»
Klik butang "Jalankan Instance" untuk melihat contoh dalam talian
Atau, cara yang lebih mudah:
如果y已经定义 , y || 返回 y, 因为 y 是 true, 否则返回 0, 因为 undefined 为 false。 |
Jika terlalu banyak parameter ditetapkan apabila fungsi dipanggil, parameter tidak akan dirujuk kerana nama parameter yang sepadan tidak dapat ditemui. Hanya boleh dipanggil menggunakan objek argumen.
Objek argumen
Fungsi JavaScript mempunyai argumen objek terbina dalam objek. Objek hujah
mengandungi tatasusunan parameter bagi panggilan fungsi.
Dengan cara ini anda boleh mencari nilai parameter terakhir dengan mudah:
Instance
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p>设置函数参数默认值。</p> <p id="demo"></p> <script> function myFunction(x, y) { y = y || 0; return x * y; } document.getElementById("demo").innerHTML = myFunction(4); </script> </body> </html>
Jalankan instance »
Klik butang "Jalankan Instance" untuk melihat contoh dalam talian
atau buat fungsi untuk mengira jumlah semua nilai:
Instance
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p>查找最大的数。</p> <p id="demo"></p> <script> function findMax() { var i, max = 0; for(i = 0; i < arguments.length; i++) { if (arguments[i] > max) { max = arguments[i]; } } return max; } document.getElementById("demo").innerHTML = findMax(4, 5, 6); </script> </body> </html>
Jalankan contoh»
Klik butang "Jalankan contoh" untuk melihat contoh dalam talian
Pas parameter mengikut nilai
Parameter yang dipanggil dalam fungsi ialah parameter tersirat bagi fungsi tersebut.
Parameter tersirat JavaScript diluluskan mengikut nilai: fungsi hanya mendapat nilai.
Jika fungsi mengubah suai nilai parameter, ia tidak mengubah suai nilai awal parameter eksplisit (ditakrifkan di luar fungsi).
Perubahan kepada parameter tersirat tidak kelihatan di luar fungsi.
Melalui parameter melalui objek
Dalam JavaScript, anda boleh merujuk nilai objek.
Jadi apabila kita mengubah suai sifat objek di dalam fungsi, nilai awalnya akan diubah suai.
Mengubah suai sifat objek boleh bertindak di luar fungsi (pembolehubah global).
Mengubah suai sifat objek kelihatan di luar fungsi.