可能重复:
JavaScript: var functionName = function() {} vs function functionName() {}
在JavaScript中我们可以说:
function a() {};
或者我们可以说
var a = function() {};
任何人都可以向我解释这些有何不同之处,如果有的话,更可取的,以及在什么情况下每个人都会使用?
任何链接或外部阅读也将非常感激。
答案 0 :(得分:7)
一个是函数声明,一个是函数表达式。
http://javascriptweblog.wordpress.com/2010/07/06/function-declarations-vs-function-expressions/
答案 1 :(得分:2)
的第一强> 的
function a() {};
这可以是FunctionDeclaration或FunctionExpression。 我们只能知道它是FunctionDeclaration还是FunctionExpression,具体取决于它出现的上下文。
示例#1)
0,function a() {} //FunctionExpression
示例#2)
(function a() {} ()); //FunctionExpression
示例#3)
var b = function a() {}; //FunctionExpression
示例#4)
foo(function a(){}); //FunctionExpression
的第二强> 的
var a = function() {};
这显然是一个FunctionExpression有两个原因。
1)作业的右侧
2)匿名函数
有用的链接:
http://sweatte.wordpress.com/syntax/javascript-idioms-and-gotchas/
http://www.ecma-international.org/publications/standards/Ecma-262.htm
答案 2 :(得分:0)
一个是函数声明,另一个是声明函数的对象。这是几乎所有面向对象的javascript教程的基础。
答案 3 :(得分:0)
Explain the encapsulated anonymous function syntax
向下滚动到已接受答案的后半部分