函數(shù)是這樣一段JavaScript代碼更耻,它只定義一次测垛,但可能被執(zhí)行或調(diào)用任意次。在JavaScript里秧均,函數(shù)即對象食侮,程序可以隨意操控它們,比如目胡,JavaScript可以把函數(shù)賦值給變量锯七,或者作為參數(shù)傳遞給其他函數(shù)。因?yàn)楹瘮?shù)就是對象誉己,所以可以給他們設(shè)置屬性眉尸,甚至調(diào)用它們的方法。
由于函數(shù)名僅僅是指向函數(shù)的指針巨双,因此函數(shù)名與包含對象指針的其他變量沒有什么不同噪猾,換句話說,一個函數(shù)可能會有多個名字筑累,比如:
```
function sum(num1,num2){
return num1+num2;
}
alert(sum(10,10));? ? ? ? ? ? ? ? ? //20
var anotherSum = sum;
alert(anotherSum(10,10));? ? ? //20
sum = null;
alert(anotherSum(10,10));? ? ? //20
```
解釋:以上代碼首先定義了一個名為sum()的函數(shù)袱蜡,用于求兩個值得和。然后慢宗,又聲明了變量anotherSum坪蚁,并將其設(shè)置為與sum相等(將sun的值賦給anotherSum)奔穿。注意,使用不帶圓括號的函數(shù)名是訪問函數(shù)指針敏晤,而非調(diào)用函數(shù)贱田。此時(shí),anotherSum和sum都指向了同一個函數(shù)嘴脾,因此anotherSum()也可以被調(diào)用并返回結(jié)果男摧。即使將sum設(shè)置成null,讓它與函數(shù)“斷絕關(guān)系”统阿,但仍然可以正常調(diào)用anotherSum()彩倚。