js中的函數
阿新 • • 發佈:2017-10-23
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中的函數