首页 > 代码库 > 8 Function类型

8 Function类型

说起来 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类型