JavaScript中这两个函数声明有什么区别?

时间:2011-01-31 19:38:13

标签: javascript

  

可能重复:
  JavaScript: var functionName = function() {} vs function functionName() {}

在JavaScript中我们可以说:

function a() {};

或者我们可以说

var a = function() {};

任何人都可以向我解释这些有何不同之处,如果有的话,更可取的,以及在什么情况下每个人都会使用?

任何链接或外部阅读也将非常感激。

4 个答案:

答案 0 :(得分:7)

答案 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

向下滚动到已接受答案的后半部分