1. 程式人生 > >js中的函數

js中的函數

result spa 其他 dso som 覆蓋 res mea clas

函數實際上是對象。每個函數都是Function類型的實例,而且與其他引用類型一樣具有屬性和方法。

由於函數是對象,因此函數名實際上也是一個指向函數對象的指針。

由於函數名僅僅是指向函數的指針,因此函數名與包含對象指針的其他變量沒有什麽不同。換句話說,一個函數可能有多個名字。

function sum(num1,num2){

    return num1+num2 

}

alert(sum(10,10));  //20

var anotherSum = sum;

alert(another(10,10));  //20

sum =null;

alert(anotherSum(10,10));  //
20

使用不帶圓括號的函數名是訪問函數指針,而非調用函數。此時,anotherSum和sum就都指向了同一個函數。

二,沒有重載

function addSomeNumber(num){

      return num+100;

}

function addSomeNumber(num){

     return num+200;

}

var result = addSomeNumber(100);   //300

而結果是後面的函數覆蓋了前面的函數。

5.5.2 函數聲明與函數表達式

函數聲明有一個函數聲明提升的過程,而函數表達式沒有。

5.5.3 作為值的函數

ECMAScript中的函數名本身就是變量,所以函數也可以作為值來使用。也就是說不僅可以像傳遞參數一樣把一個函數傳遞給另一個函數,

而且可以將一個函數作為另一個函數的結果返回。

function callSomeFunction(someFunction,someArgument){

   return somFunction(someArgument);


}

js中的函數