Terdapat dua cara untuk menentukan fungsi dalam JS:
(1) Pengisytiharan fungsi biasa
function slide(arguments){ //...code }
(2) Takrifkan fungsi dalam bentuk ungkapan fungsi
var slide = function(arguments){ //...code }
Walaupun kedua-dua kaedah di atas secara logiknya setara, masih terdapat beberapa perbezaan kecil:
Perbezaan 1: Fungsi dalam Contoh 1 akan dimuatkan ke dalam skop sebelum kod dilaksanakan, manakala dalam Contoh 2 ia tidak akan ditakrifkan sehingga kod dilaksanakan ke baris itu;
Perbezaan 2: Pengisytiharan fungsi memberikan nama kepada fungsi, manakala ungkapan fungsi mencipta fungsi tanpa nama dan kemudian memberikan fungsi tanpa nama kepada pembolehubah;
function factorial(num){ if(num<=1){ return 1; } else { return num*arguments.callee(num-1); } } var anotherFactorial = factorial; factorial = null; console.log(anotherFactorial);//输出factorial(){},有函数名 若是以函数表达式定义 var factorial = function(num){ //...code } //...code console.log(anotherFactorial);//输出function(){},匿名函数