2013-03-17 150 views
3

有人告诉我,你可以用多于一种方法在JavaScript中声明函数。 ex。不同的函数声明

// One way 
function sqrt(x){ 
    return x * x; 
} 

// Second way 
var sqrtAlt = function (x){ 
    return x * x; 
} 
  • 是什么这两个函数声明之间的区别?
  • 输出是一样的,但必须有一个理由有两种方式?
  • 我也很好奇你会如何使用它们。
  • 最后,还有其他方法吗?

谢谢。

+1

我认为第二个方法应该是'无功sqrtAlt =功能(X){...}' – 2013-03-17 15:21:07

+0

@ FabienQuatravaux这是一个错字。固定。谢谢。 – chatu 2013-03-17 15:23:09

+0

@zenith谢谢。 – chatu 2013-03-17 15:23:28

回答

0

当你定义

function sqrt(x){ 
    return x * x; 
} 

是函数的名字出现在Firebug调试器。被声明为

var sqrtAlt = function (x){ 
return x * x; 
} 

功能来为匿名。

还检查了该Thread

0

它们基本上是同样的事情,但在第二个例子中,你另外的功能分配给一个变量。覆盖某个对象的已有的功能,当创建一个函数的这种方式是非常有用的,让我们说:

window.alert = function(text) 
{ 
    // Do something ... 
}; 
+0

有一个非常重要的区别:在第一个示例中,该函数在执行上下文的开始处可用,在第二个示例中,直到执行赋值语句为止。 – zeroflagL 2013-03-17 15:54:03