Function類型.
首先記住一句話:函數是對象,函數名是指針。
1:
function sum (num1, num2) {
return num1 + num2;
}
2:
var sum = function(num1, num2){
return num1 + num2;
};
3:
var sum = new Function("num1", "num2", "return num1 + num2");
// 不推薦
上面這三種寫法意義一樣。一是函數聲明語法定義函數,二是函數表達式定義函數,
三是使用Function的構造函數定義函數,其中3,最後一個參數始終被看做函數體。
使用不帶圓括號的函數名是訪問函數指針,不是調用函數
沒有重載,定義兩個相同名字的函數,結果就是第二個會覆蓋第一個。
函數聲明和函數表達式的區別
解析器會率先讀取函數聲明,並使其在執行 9 任何代碼之前可用(可以訪問);
至於函數表達式,則必須等到解析器執行到它所在的代碼行,纔會真正被解釋執行
正確:
alert(sum(10,10));
function sum(num1, num2){
return num1 + num2;
}
錯誤:
alert(sum(10,10));
var sum = function(num1, num2){
return num1 + num2;
};
作爲值的函數
可以像傳遞參數一樣把一個函數傳遞給另一個函數,
也可以將一個函數作爲另一個函數的結果返回。
function callSomeFunction(someFunction, someArgument){
return someFunction(someArgument);
}
調用
function add10(num){
return num + 10;
}
var result1 = callSomeFunction(add10, 10);
alert(result1); //20