Definisi fungsi JavaScript

JavaScript menggunakan fungsi kata kunci untuk mentakrifkan fungsi.

Fungsi boleh ditakrifkan melalui pengisytiharan atau ia boleh menjadi ungkapan.


Pengisytiharan fungsi

Dalam tutorial sebelumnya, anda sudah mengetahui sintaks pengisytiharan fungsi:

function functionName(parameters) {
Executed code
}

Fungsi tidak akan dilaksanakan sejurus selepas ia diisytiharkan, tetapi akan dipanggil apabila kita memerlukannya.

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(a,b){
        return a*b;
    }
    document.getElementById("demo").innerHTML=myFunction(4,3);
</script>
</body>
</html>

Jalankan program dan cuba


Petua: The koma bertitik Digunakan untuk memisahkan penyataan JavaScript boleh laku Memandangkan perisytiharan fungsi bukan penyataan boleh laku, ia tidak berakhir dengan koma bertitik.


Ekspresi fungsi

Fungsi JavaScript boleh ditakrifkan melalui ungkapan.

Ungkapan fungsi boleh disimpan dalam pembolehubah:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<p>函数可以存储在变量中:</p>
<p id="demo"></p>
<script>
var x = function (a, b) {return a * b};
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>

Jalankan atur cara untuk mencubanya


Selepas ungkapan fungsi disimpan dalam pembolehubah, pembolehubah boleh juga digunakan sebagai fungsi Gunakan:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<p>函数存储在变量后,变量可作为函数使用:</p>
<p id="demo"></p>
<script>
var x = function (a, b) {return a * b};
document.getElementById("demo").innerHTML = x(4, 3);
</script>
</body>
</html>

Jalankan atur cara untuk mencubanya


Fungsi di atas sebenarnya adalah fungsi tanpa nama (fungsi itu tidak mempunyai nama).

Fungsi disimpan dalam pembolehubah dan tidak memerlukan nama fungsi Ia biasanya dipanggil melalui nama pembolehubah.

Petua: Fungsi di atas berakhir dengan koma bertitik kerana ia adalah pernyataan pelaksanaan.


Function() constructor

Dalam contoh di atas, kami mengetahui bahawa fungsi ditakrifkan melalui fungsi kata kunci .

Fungsi juga boleh ditakrifkan melalui pembina fungsi JavaScript terbina dalam (Function()).

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<p>JavaScrip 内置构造函数。</p>
<p id="demo"></p>
<script>
var myFunction = new Function("a", "b", "return a * b");
document.getElementById("demo").innerHTML = myFunction(4, 3);
</script>
</body>
</html>

Jalankan program untuk mencubanya

Petua: Dalam JavaScript, banyak kali, anda perlu mengelak daripada menggunakan kata kunci baharu.


Sebenarnya, anda tidak perlu menggunakan pembina. Contoh di atas boleh ditulis sebagai:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<p id="demo"></p>
<script>
var myFunction = function (a, b) {return a * b}
document.getElementById("demo").innerHTML = myFunction(4, 3);
</script>
</body>
</html>

Jalankan program dan cuba


Fungsi Mengangkat (Hoisting)

Dalam tutorial sebelum ini kita telah mempelajari tentang "hoisting".

Mengangkat ialah tingkah laku lalai JavaScript untuk menaikkan skop semasa ke hadapan.

Hoisting digunakan pada pengisytiharan berubah-ubah dan pengisytiharan fungsi.

Oleh itu, fungsi boleh dipanggil sebelum pengisytiharan:

myFunction(5);

function myFunction(y) {
return y * y;
}

Tidak boleh dinaikkan pangkat apabila mentakrifkan fungsi menggunakan ungkapan.


Fungsi panggilan kendiri

Ekspresi fungsi boleh "memanggil diri".

Ekspresi panggilan sendiri dipanggil secara automatik.

Dipanggil secara automatik jika ungkapan diikuti dengan () .

Tidak boleh memanggil sendiri fungsi yang diisytiharkan.

Tunjukkan bahawa ia adalah ungkapan fungsi dengan menambah kurungan:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<p>函数可以自动调用:</p>
<p id="demo"></p>
<script>
(function () {
    document.getElementById("demo").innerHTML = "Hello! 我是自己调用的";
})();
</script>
</body>
</html>

Jalankan atur cara untuk mencubanya


Fungsi di atas sebenarnya adalah fungsi panggilan kendiri tanpa nama (tiada nama fungsi).


Fungsi boleh digunakan sebagai nilai

Fungsi JavaScript boleh digunakan sebagai nilai:

Contoh

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<p>函数可作为一个值:</p>
<p>x = myFunction(4,3) 或 x = 12</p>
<p>两种情况下,x 的值都为 12。</p>
<p id="demo"></p>
<script>
function myFunction(a, b) {
    return a * b;
}
var x = myFunction(4, 3);
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>

Jalankan atur cara untuk mencubanya


Fungsi JavaScript boleh digunakan sebagai ungkapan:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<p>函数可作为一个表达式使用。</p>
<p id="demo"></p>
<script>
function myFunction(a, b) {
    return a * b;
}
var x = myFunction(4, 3) * 2;
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>

Jalankan program dan cuba


Fungsi ialah objek

Gunakan operator jenis dalam JavaScript untuk menentukan jenis fungsi akan mengembalikan "fungsi".

Tetapi adalah lebih tepat untuk menerangkan fungsi JavaScript sebagai objek.

Fungsi JavaScript mempunyai sifat dan kaedah.

Sifat

arguments.length mengembalikan bilangan parameter yang diterima semasa panggilan fungsi:

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<p> arguments.length 属性返回函数接收到参数的个数:</p>
<p id="demo"></p>
<script>
function myFunction(a, b) {
    return arguments.length;
}
document.getElementById("demo").innerHTML = myFunction(4, 3);
</script>
</body>
</html>

Jalankan program dan cuba ia



kaedah toString() mengembalikan fungsi sebagai rentetan:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<p> toString() 将函数作为一个字符串返回:</p>
<p id="demo"></p>
<script>
function myFunction(a, b) {
    return a * b;
}
document.getElementById("demo").innerHTML = myFunction.toString();
</script>
</body>
</html>

Jalankan program ke cubalah

Petua: Fungsi yang ditakrifkan sebagai atribut objek dipanggil kaedah objek Jika fungsi itu digunakan untuk mencipta objek baharu, ia dipanggil pembina objek.



Meneruskan pembelajaran
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p>本例调用的函数会执行一个计算,然后返回结果:</p> <p id="demo"></p> <script> function myFunction(a,b){ return a*b; } document.getElementById("demo").innerHTML=myFunction(4,3); </script> </body> </html>
  • Cadangan kursus
  • Muat turun perisian kursus