1)函数声明
function foo(){}
2)函数表达式
var foo = function(){}
函数声明与函数表达式的区别:
* 函数声明必须有名字
* 函数声明会函数提升,在预解析阶段就已创建,声明前后都可以调用
* 函数表达式类似于变量赋值
* 函数表达式可以没有名字,例如匿名函数
* 函数表达式没有变量提升,在执行阶段创建,必须在表达式执行之后才可以调用。
3)new Function()
函数的其他成员:
arguments 实参的集合
caller 函数的调用者
callee 函数体
length 形参的个数
name 函数的名字