Definisi fungsi JavaScript



JavaScript menggunakan kata kunci fungsi untuk mentakrifkan fungsi.

Fungsi boleh ditakrifkan melalui pengisytiharan atau ia boleh menjadi ungkapan.


Pengisytiharan fungsi

Dalam tutorial sebelumnya, anda telah mempelajari sintaks pengisytiharan fungsi:

fungsi functionName( parameter) {
Kod yang dilaksanakan
}

Fungsi tidak akan dilaksanakan serta-merta selepas ia diisytiharkan, tetapi akan dipanggil apabila kita perlukannya.

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>

Run Instance»

Klik butang "Run Instance" untuk melihat contoh dalam talian

NoteNoma bertitik digunakan untuk memisahkan penyataan JavaScript boleh laku.
Note分号是用来分隔可执行JavaScript语句。
由于函数声明不是一个可执行语句,所以不以分号结束。
Memandangkan pengisytiharan 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:

Instance

<!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>

Instance berjalan»

Klik butang "Run Example" untuk melihat contoh dalam talian

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

Instance

<!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 Instance»

Klik butang "Run Instance" untuk melihat contoh dalam talian

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

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

Note上述函数以分号结尾,因为它是一个执行语句。

Function() constructor

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

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>

Run Instance»

Klik butang "Run Instance" untuk melihat contoh dalam talian

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

Instance

<!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>

Run Instance»

Klik butang "Run Instance" untuk melihat contoh dalam talian

NoteDalam JavaScript, banyak kali , anda perlu mengelak daripada menggunakan kata kunci
Note在 JavaScript 中,很多时候,你需要避免使用 new 关键字。
baharu<🎜>.

Fungsi Mengangkat (Hoisting)

Dalam tutorial sebelum ini kita telah pun 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 mereka sendiri".

Ekspresi panggilan sendiri dipanggil secara automatik.

Dipanggil secara automatik jika ungkapan diikuti dengan () .

Tidak boleh memanggil sendiri fungsi yang diisytiharkan.

Tunjukkan bahawa ia ialah ungkapan fungsi dengan menambahkan kurungan:

Instance

<!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 instance»

Klik butang "Jalankan Instance" untuk melihat contoh dalam talian

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


Fungsi boleh digunakan sebagai nilai

Fungsi JavaScript boleh digunakan sebagai nilai:

Instance

<!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>

Run Example»

Klik butang "Run Example" untuk melihat contoh dalam talian

Fungsi JavaScript boleh digunakan sebagai ungkapan:

Contoh

<!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 contoh»

Klik butang "Jalankan contoh" untuk melihat contoh dalam talian


Fungsi ialah objek

Menggunakan 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>

Running Instance »

Klik butang "Jalankan Instance" untuk melihat contoh dalam talian

Kaedah toString() mengembalikan fungsi sebagai rentetan:

Instance

<!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 contoh»

Klik butang "Jalankan contoh" untuk melihat contoh dalam talian

Note函数定义作为对象的属性,称之为对象方法。
函数如果用于创建新的对象,称之为对象的构造函数。