JavaScript高級程序設計(4)

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章