1. 程式人生 > >8 Function類型

8 Function類型

函數表達式 turn tro 有意思 clas blog 讀取 pre bsp

說起來 ECMAScript 中什麽最有意思,我想那莫過於函數了——而有意思的根源,則在於函數實際上是對象

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

定義函數常用的有幾種方式?

方法一:定義

function sum (num1, num2) {
  return num1 + num2;
}

方法二:表達式

var sum = function(num1, num2){
  return num1 + num2;
};

還一種是:

var sum = new Function("num1", "num2", "return num1 + num2"); //
不推薦

方法一和方法二有什麽不同呢?

解析器在向執行環境中加載數據時,對函數聲明和函數表達式並非一視同仁。

解析器會率先讀取函數聲明,並使其在執行任何代碼之前可用(可以訪問);至於函數表達式,則必須等到解析器執行到它所在的代碼行,才會真正被解釋執行。

比如如下代碼能正常運行:

alert(sum(10,10));
function sum(num1, num2){
  return num1 + num2;
}

而下面代碼會出現錯誤:

alert(sum(10,10));
var sum = function(num1, num2){
  return num1 + num2;
};

8 Function類型