function foo(){}; // 声明,因为它是程序的一部分 var bar = function foo(){}; // 表达式,因为它是赋值表达(AssignmentExpression)的一部分 new function bar(){}; // 表达式,因为它是New表达式(NewExpression)的一部分 (function(){ function bar(){}; // 声明,因为它是函数体(FunctionBody)的一部分
摘自《JavaScript高级程序设计》 函数声明 function sum(a,b){ return a+b } 函数表达式 var sum = function(a,b){ return a+b } Function构造函数【从技术角度讲,这是一个函数表达式】 var sum = new Function('a','b','return a+b')//不推荐使用,影响函数解析性能