function 函數的聲明方式
普通函數的聲明
function box(a,b){
return a+b};
alert(box(2,3));

可以看到正常打印了。這是最簡單的函數的聲明。
使用變量初始化函數
var box = function(a,b){
return a+b};
alert(box(2,3));

這是使用 變量初始化函數。
使用 function 構造函數
var box = new Function('a','b','return a+b');
alert(box(1,2));

第三種不推薦使用,因為它會解析兩次代碼。(第一次是解析常規(guī) ECMAScript 代碼,第二次是解析傳入構造函數中的字符串)從而影響性能。我們通過這種語法來理解 函數是對象,函數名是指針 的概念。
作為值的函數
因為 ECMAScript中的函數名本身就是變量,所以函數也可以作為值來使用。不僅可以像傳遞參數那樣把一個函數傳遞給另一個函數,而且可以將另一個函數作為另一個函數的結果返回。
函數可以傳遞函數,第一個我們寫一個傳遞的函數
function box(sum,num){
return sum+num;
}
function sum(num){
return num+10;
}
var res = box(sum(10),10);
document.write(res);

這時候我們把 sum(10)傳遞的是函數的返回值和普通的變量沒區(qū)別。所以這時候就是 function sum(10){return 10+10}; 最后返回的是 10+10=20;然后函數 box(sum(10),10)相當于 box(20,10) 所以打印的就是30 .這個例子就是把函數作為返回值傳遞的,而不是作為函數傳遞的。
接下來的例子就是要把函數本身作為參數傳遞,而不是函數的結果傳遞。
function box(sum,num){
return sum(num);
}
function sum(num){
return num+10;
}
var res = box(sum,10);
document.write(res);

這時候就是把 sum() 函數作為一個值返回。