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:

functionName(parameter1, parameter2, parameter3) {
// 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:

Instance

rreee

Jalankan Instance»

Klik butang "Run Instance" untuk melihat contoh dalam talian

Note如果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.