2012-03-19 81 views
0

可能重复:
“Usual” functions vs function variables in JavaScript
whats the difference between function foo(){} and foo = function(){}?函数javascript:匿名但有名字?

我实在不明白这两个函数的区别是:

window.send_to_editor = function(html){ 

function send_to_editor(html) { 

他们都有一个叫他们的名字,虽然第一个被认为是匿名的?

谢谢您的回答

+2

@Michael:这可能会有所解释。第一个函数绝对是一个无名函数,我会说它与匿名函数相同。函数分配给的变量的名称不是该函数的名称。您可以将相同的功能分配给多个变量。 – 2012-03-19 16:37:13

回答

0

一些东西......

  1. 首先是创建一个匿名函数,然后分配给它到非匿名成员...
  2. 第二实际上是申明的功能,并且声明的功能总是悬挂

为了增加你的困惑..这就是提升的意思......声明的函数被“悬挂”到顶端,所以以下是有效的。

//call it 
funcOne(); 

//declare it 
function funcOne() { 
    alert("Why am I working? I thought javascript was top down?!?!?"); 
} 

此外,您可以命名函数表达式(为了递归调用它们)。这也是有效

var funcOne = function internalName() { 
    internalName(); 
}; 

我通常喜欢通过分配/表达创建功能,主要是因为它更准确地描述其功能是第一类值,并且不通过吊装行为顺带创造可能的混淆。

+0

感谢jondavidjohn,它仍令我困惑,但谢谢你的回答 – Paul 2012-03-19 19:08:43